Cleanup the sFLASH driver

This is Part 1 of a user facing non-volatile memory library for the Spark core using the on board serial flash. Test routines are available on mattande/core-firmware@4521ec1bd5bab6a5d1e236d84277c5004e83c5a2

 * Expose only sFLASH_WriteBuffer(), sFLASH_ReadBuffer, sFLASH_Init,
   sFLASH_EraseSector() and sFLASH_EraseBulk() as these are the only
   functions external users should be calling.
 * Add extern for binding in C++
 * Note that there is no restriction on using auto address increment
   when the address crosses multiple pages
 * Rewrite sFLASH_WriteBuffer() to correctly handle writing odd
   number of bytes and/or starting on an odd address