Sign CONTRIBUTORS.rst.
Implement class for basic decoder caching.

The decoder solver used is not cached!
Cache solver info.

This is done as pickle which can be quite slow. However, it should not
contain very large arrays and using the the numpy io functions would
complicate matters as some own storage format has to be implemented
for the dict.
Add log messages and warnings.
Do not overwrite default arguments in caching.
Test caching with E argument to solver.
Use caching if seed is fixed.

But disable cache in tests.

Also added the ability for caches to be read-only. New decoders
won't be saved, but if they exist, they'll be loaded.
Add name to version module.
Use system specific cache directories.
Add possibility to get cache size.
Add function to limit items in cache.
Add documentation for caching classes.
Add test for cache invalidation.
FingerPrint class instead of pickle
Handle corrupted decoder cache gracefully.
Moved paths to nengo.utils.paths
Implement RC settings.

Use the RC settings for determining if cache will be used.
Add cache benchmarking test.

Also added:
- test_cache_works as a minimal smoke test similar to
  test_cache_performance but faster.
- Notebook for benchmarking the cache.
Use RC to get cache directory.
Respect RC setting of cache size and path.