Fix parsing numbers

An attempt to fix #5 

Convert arrays of digits to strings before parsing a number from them

Change the parsing order to double -> decimal -> integer to capture the longest tokens first

Parse decimals and doubles into strings according to the [OData specification for the primitive types](http://www.odata.org/documentation/odata-version-2-0/json-format/#PrimitiveTypes)