Added JDataMapper class

This pull request adds a new class to the Data package called `JDataMapper`. The idea is that this sits in between data objects, like JData or even JDataSet, and the data source (which could be a database, could be a caching layer, etc).

The documentation for the class can be found here:

https://github.com/eBaySF/joomla-platform/blob/data-package/docs/manual/en-US/chapters/packages/data.md#jdatamapper

For those familiar with eBay's UCM implementation, the mapper will replace the JDatabaseObject class and the mapper is obviously pivotal in moving forward with UCM (at least for the architecture that eBay has been using).  You can see hints of UCM fundamentals in the JDatabaseTableMapper example in the documentation where it is filtering out unknown table columns in doCreate and doUpdate.