Caching: return early if we're not meant to cache object

If the key for the object is None, we're not going to store it, so make
a new object and return immediately, rather than looking in the cache
for it.
Make disk cache MPI safe

Rather than every process looking in the disk cache, and potentially
storing a new object there, read on rank zero and broadcast.  This fixes
a potential race condition where one process would read while another
was writing.
Merge pull request #354 from OP2/fix/disk_cache

Make disk caching MPI safe.  Only hit the disk on rank zero and
broadcast the results.