Always quote numeric hash keys

Scalars that look like numbers now get quoted when used as hash keys.

Removed unused "indent" argument to _dump_scalar and fixed (dubious)
subclass test in light of this change.
Quote numbers whenever they've been used as a string

This replaces Data::Dumper with B and checks to see if something that
looks like a number has ever been used as a string (i.e. if it has a
valid internal string value).  If so, it gets quoted.  Otherwise it does
not (unless it's a hash key).