Remove pointless execution within a request

Instead we now pass the result back to the request
when it is executed by the api...
Add TODOs to implement result cacheing..

Currently the cache only works in tests
These final 2 todos would actually implement
the caching of request results! :D
We now use the cache!

Still need to get rid of old cached stuff
when they expire..
Everything in Cache now accepts the Cachable obj!
Cache::age() for the age of a cache item

age() returns the age of an item in seconds
according to the last time it was modified

Also this commit has altered the cache prefix
for tests to make sure we dont conflict with
data we might want at all....
Add a max cache age to the Cacheable interface
Now check cache age before we use the data..
Dont cache on regular tests

Now we dont leave stuff in the cache
Finish Caching stuff + tests