Switch to generic "data handle" caching and locking

Until now, we have had special code for btree handles, tables, indexes and LSM trees.  Unify those various lists into generic "data handles" that share naming, locking, caching, configuration and statistics.