Parse json with leading whitespace

Leading whitespace in a json string for an empty object (e.g. `" {}"`) is
only successfully parsed for user-defined classes - it fails in one way
or another for: `Dictionary<string, string>`, `Dictionary<TKey, TValue>`
(any other type of dictionary), `Hashtable`, `JsonObject`, or
`KeyValuePair<TKey, TValue>`. Furthermore, for a user-defined class, the
shortcutting check for an empty object is not invoked if there is any
leading whitespace.

Added index parameter for JsonTypeSerializer.IsEmptyMap. Most callers of
this method were already calculating the index if the first
non-whitespace character, but IsEmptyMap was not taking this index value
into account - it was returning false when it should have been returning
true.

NOTE: JSV is not affected by this change, only JSON.