3.0 - Query caching for \Cake\ORM\Table::get (updated)

Support for query cache in `\Cake\ORM\Table::get`, based on discussion in https://github.com/cakephp/cakephp/pull/4815

The duplication in `TableTest` bothers me a little bit (`testGet` and `testGetWithCache`), but I did not refactor it, since I did not find how you usually deal with it (there are only `test*` methods in the class).
Couldn't stop thinking about it :) https://github.com/sukihub/cakephp/compare/sukihub:3.0-cacheable-get-v1...3.0-cacheable-get-tests

The other two assertions I see there can easily be tested if database is hit: (1) that correct `$options` are passed to finder and (2) that correct primary key column is used.

Now the cache, I'm using in memory cache and asserting that it returns same instance (or a different instance in case cache is turned off). And the original test just doesn't care about cache at all.

This is shorter than mocks, but I'm not really sure if better.