JSONAPI Improvements
Merge branch 'JSONAPI_Feature' of https://github.com/ProlificLab/orbit.js into json-api-links

Conflicts:
	lib/orbit-common/jsonapi-serializer.js
	lib/orbit-common/jsonapi-source.js
	lib/orbit-common/schema.js
Allow keys to be auto-generated if their mappings don’t exist.

New `autoGenerate` arg for `primaryToSecondaryKey` and
`secondaryToPrimaryKey`.

Also, introduces `_registerKeyMapping` to centralize mapping of keys.
New requestable method in OC.Source: findLinked

`findLink` is now solely responsible for finding IDs of linked records,
while `findLinked` is responsible for finding linked records themselves.

This separation allows for some important distinctions:

* For API-based sources, IDs may be retrieved through a different 
  endpoint than linked records

* IDs are typically retrieved with a single request, while linked 
  records are often paginated. Now, meta information can be stored 
  to help fetch linked records in one or more requests.

By default, `findLinked` will attempt to retrieve records from links
cached on a record. If no links are cached, `findLinked` will call 
`findLink`, followed by `find`.