closes #6 Fix indexu.js

indexu.js exposed a hard to hit bug that is at heart a memory
corruption.  NamespaceDetailsTransient was caching an IndexSpec that
should have been invalidated when an index failed to build.  Because the
key in the map is a pointer, this bug is only triggered when a later
IndexDetails is allocated to the same pointer, at which point it finds
the (invalid) cached value in the map.

The right thing to do is to get rid of NamespaceDetailsTransient (see #343)
but for now we are just going to invalidate the cache when we close
NamespaceDetails (on the rollback path for building this index).