I figured out why the ESP8266's are not using the base64 library as installed in the library folder.... the ESP8266 add in for arduino IDE includes its own version of base64...so when you compile it fails as it is really not decalred in scope...
The easiest way to fix it is to simply delete the base64.c files in the ESP8266 compile folder
the click on the folder number of the version you are using then click on the following \cores\esp8266
in this folder you will find 2 base64 files....delete these and you compile will work....
Please note that when you update the ESP8266 in the board manager it will write the base64 files back.
Option 2 is to rewrite your code to use the methods defined in the base64 files provided by ESP8266 community.
I found that also and you are correct! but it doesn't appear to be same base64 package better to include it seperatly as in my code example deleting it sure to cause issues in the future! Might want to check with the esp8266 guys on that one but seems like a bad ideal! Just include as i did with quotes and put the library in the source folder should work fine. The working example is in the above code!