Redefined the file system's inode index.
Redefined the file system's inode index.

Properties of the new definition:

 *  The key of the index is an invariant property of the indexed inode.

 *  The key of the index doesn't contain a source generation, since we
    never strictly need to search by this.

 *  In order to add an entry for an object, you must hold the lock for
    any other inode for that object's name in the index, excluding
    concurrent changes to that inode's generation.

I hope that the new definition will aid in relaxing which locks we hold
during long-lived operations (issue #23). In particular, I don't think
we'll need to hold the file system lock around FlushFile or SyncFile.

GoogleCloudPlatform/gcsfuse,kahing/gcsfuse,BanzaiMan/gcsfuse,GoogleCloudPlatform/gcsfuse,GoogleCloudPlatform/gcsfuse,BanzaiMan/gcsfuse,jacobsa/ratelimit,mbrukman/gcsfuse,jacobsa/timeutil