Deserializing Skills

The skill deserialization unit test is failing due to how it handles
fields it can't map in an obvious way (e.g. it doesn't handle
"primary_attr_key" -> PrimaryAttribute). It also doesn't handle schema
validation. JSON.NET has a Contract/Converter API that I think I can use
to handle both of those issues.