Added float scanning to numeric parser
Improved operator scanning with "shortest match" fallback
Improvements to error handling
Improvements to preprocessor expression handling.
* Fixed issue: #if resulting false skips eval of #elif
* Errors on use of ++/--
* Improved error reporting and recovery