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.
Add installation-wide nengorc.
Log reading of RC files.

To see the log messages:

    import nengo
    nengo.log(True)
    nengo.rc.reload_rc()
Move cache related logic to cache.py.
Nengo RC file size now given with units

The user specifies something like "512 MB" rather than an
integer that is assumed to be in bytes.
To do this, `bytes2human` and `human2bytes` functions were added.
Cache get_size returns a human readable str by default now;
get bytes by calling get_size_in_bytes.