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.
Implement RC settings.
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 runcom setting of cache size and path.
Add installation-wide nengorc.
Log reading of runcom files.

To see the log messages:

    import nengo
    nengo.log(True)
    reload(nengo.runcom)
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 passing `in_bytes=True`.
Moved all paths to nengo.utils.paths

Nice to have all path stuff in a single file.
Doing this also removed the need for nengo.utils.appdirs,
so I removed it.
Added rc to nengo namespace

So people can do nengo.rc after import nengo.