Cleanup the sFLASH driver

 * 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
Fix bug when writing 1 byte or 1 or 2 bytes to an odd address.
Cleanup compile warning.
Increase SPI clock to 18MHz when selecting the serial flash
Merge branch 'nvm' of https://github.com/mattande/core-common-lib into mattande-nvm