ToCamelCase helper that matches JSON.NET convention

Camel-casing identifiers with several capitals at the start is corrected: "ABCTest" -> "abcTest", not "aBCTest".

ToCamelCase helper is taken as is from JSON.NET sources, so the new approach should work exactly as CamelCasePropertyNamesContractResolver from JSON.NET do.