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).
The test for `get()` was written this way before my change, I just added the absolute minimum. I can however have a look at it (tomorrow).

On second thought, is there an easy way to verify that database was queried only once without mocks?