Eng 6095 index with address

Don't merge, only for review.

Pass eecheck on local machine, but haven't check the result of Junit test.

I worry about how to deconstruct Key and Data: is the default deconstructor enough?

After refining the code, the next step is to append address to KeyType other than IntsKey.
Good point. So, how about a compromise:

        template <typename Key, typename Data>
        class NormalKeyValuePair : public std::pair<Key, Data> {
                // just add accessors here and inherit everything else?
        };