Explicit persistence for cached items

This PR implements explicit persistence for cached items. Before the only way to persist an item was by configuring the expiry on the adapter with `null`. Now it is possible to have the adapter configured with a default expiry and persist an item on per `write()` basis.

To persist an item the constant `Cache::PERSIST` is introduced.

```
Cache::write('default', 'foo', 'bar', Cache::PERSIST);
```