Fix indenting
Removing unessecary call to MapClrMemberNameToJsonFieldName.

The keys in the IDictionary instances in the GetCache are JSON Field
names so the call to MapClrMemberNameToJsonFieldName in
TrySerializeUnknownTypes is unnesecary at best and incorrect at worst
as the input we were passing to that function was not a CLR Member
Name but rather a JSON Field Name.
Add richer extension point for CLR to JSON Name Mapping.

Instead of just considering the name when mapping a CLR member to a
JSON field name, provide a method which gives subclasses the full
MemberInfo object.  This could be used, for example, to query an
attribute on the member to pick up a different name.
Allow [Parameter] to control JSON Field Names.

Previously, SimpleJsonSerializer.MapClrMemberNameToJsonFieldName
special cased the name "Links" since while that was the name of the
property in the object model, in JSON "_links" was used instead.

It turns out that there was an additional problem, where GitReference
wants to expose as Repository, but the name in JSON responses is
"repo".  Instead of simply adding another special case to
MapClrMemberNameToJsonFieldName, we update the implementation of the
serializer to allow [Parameter(Key = "some_name")] to denote what name
we'd like to use for the field in the JSON object when we serialize.
Merge pull request #606 from mge/allow-om-names-to-differ

Fix an issue where Repository on the Git Reference for a Pull Request was always null.