Add sindex refs to superblock.

The superblock now has a map from uuids to sindexes.
Unit test forthcoming.
Adds a unittest for sindexes.
Adds in an initialize secondary indexes method.

Also uses that method in the unit test which makes it pass.
Extends unittest to actually check the results.
Squash me. Fleshing out btree_store_t sindex api.
More work on sindex api in btree_store_t.

Adds:
drop_secondary_index
acquire_sindex_superblock_for_read
Setup/teardown for btree_store_unittest exists.
Adds a unit test for btree_store_t sindex api.

This required a number of things:
- btree_store_t needed the friend a unit test so private apis could be
    accessed
- rdb_value_deleter_t was moved from an inline class to a full fledged
    class in the header so it could be passed in when the index is dropped.
- A bug was discovered in drop_secondary_index. It was releasing a
    buf_lock_t and then marking it deleted which caused a confusing error
    much latter on. This bug was fixed and an assert for this condition
    explicitly added so the error will be more clear.
Adds a unittest for underlying structures.

The unittest tests that you can acquire the secondary indexes and make
changes to them.
Refactors the sindex code.

Sindexes are now stored in a seperate block that the main super block
has a reference to. This makes it easier to acquire the superblock after
performing a write to the main tree.
Merge commit 'e055fd0' into jd_secondary_indexes
Merge commit '728eaaa' into jd_secondary_indexes
Merge commit '77fe1b2' into jd_secondary_indexes
Merge commit '60eebae' into jd_secondary_indexes
Merge commit '7391eae' into jd_secondary_indexes
Merge commit '8a83f5c' into jd_secondary_indexes
Merge commit 'cd33b6a' into jd_secondary_indexes
Merge commit '50845f5' into jd_secondary_indexes
Merge commit '84151c0' into jd_secondary_indexes
Merge commit '5b8ca4d' into jd_secondary_indexes