Implementing increment/decrement for file cache adapter.
Refactoring file cache adapter; improve parser.
Cache file adapter incr/decr to not alter expiry.
Adding tests for incr/decr of file cache adapter.
Require increment/decrement methods for cache adapters.
Correcting documented cache incr/decr return and formatting.
Adding note about on-the-fly invalidation.
Merge pull request #1084 from davidpersson/cache-incr-decr

Make Cache increment/decrement methods available in every adapter
Fix docblock variable name and whitespace.
Fix casing in method name.
More 2014.
Expanding and reformatting `respondsTo()` docblocks.

Refs 006c852.
Use native key prefixing for memcache adapter.
Check for key before incr/decr in cache memory adapter.
Adding tests for incr/decr in memory cache adapter.
Adding missing param in docblock; formatting.
Adding test to disprove #1013 and #1003.
Actually use offset in incr/decr in memory adapter.
BC break; use class filters instead of adapter filters in `Cache`.

This changes how the Cache class can be filtered. Instead of applying
filters to a single adapter (configuration) you must/can now filter the
Cache class' static methods directly.

This makes clear which filters are used when. I.e. when I read the docblock of
Cache::write() and see I can filter it, I'd exepct that I can directly filter
that method and not indirectly the adapter method.

This is an attempt to remove very granular filtering points and move them to a
higher level. It is assumed that filtering on adapter level is seldomly used.

You should update you code as per this example:

```
// OLD
Cache::config(array(
	'default' => array(
		'adapter' => 'File',
		'filters' => array(
			'write' => function($self, $params, $chain) {
				// ...
			}
		)
	)
));
```

```
// NEW
Cache::config(array(
	'default' => array(
		'adapter' => 'File'
	)
));

Cache::applyFilter('write', function($self, $params, $chain) {
	// ...
});
```
Fixing HHVM's `TooManyArgument` and `BadPassByReference` warnings.

Refs #933.

- `_populate()` does not take an offset as an argument.
  The callee (`MultiKeyRecordSet::offsetGet()`) will work
  as intended nonetheless.

- Assign to a variable and cast before passing to `current()`.