index method for all adapters

obviously needs to be swashed but is a merger of the 2 branches, mine which deals with levelDB and @nolanlawson which deals with tests, nolan and I can push further changes to this branch and then only squash it right before it gets merged