Check for bools before ints.

bool is a subclass of int. During dump, check if the type is bool
first, and handle appropriately for bools.
Fix TypeError when tokenizer.current is None.

Initially tokenizer.current is set to None. When assertValues() is
called before current is updated, then a TypeError occurs, stating
that 'in <string>' requires string as left operand, not
NoneType. Adding a separate check to see if current is None, and
handle it correctly.
Raise exception when checking for non-digit in Number

Remove the assertion while checking for a non-digit in a number. That
way the higher layers can catch the exception and handle accordingly.
Fix incorrect space skipping quotes within string.

When a quote appears within a string, the tokenizer skipblanks gets
into a incorrect state. And JSONs like [ "\"" ] result in a parse
exception. Fix this by letting the tokenizer know when we enter a
string and when we exit a string.