remove trailing whitespace
decode simple strings
decode positive integers
decode negative integers
decode positive and negative floats
Decode: accept_* -> consume_*

The "consume" methods now return a tuple of { value, rest }. That is,
they consume as much of the input as possible and return the leftovers
alongside what they have parsed.
decode array
decode null, true, false
add nested array decoding test
decode Objects
add test for decoding UTF-8 string
better errors when decoding bad objects