thread local pointer storage

Summary:
This is not a generic thread local implementation in the sense that it
only takes pointer. But it does support multiple instances per thread
and lets user plugin function to perform cleanup when thread exits or an
instance gets destroyed.

Test Plan: unit test for now

Reviewers: haobo, igor, sdong, dhruba

Reviewed By: igor

CC: leveldb, kailiu

Differential Revision: https://reviews.facebook.net/D16131
Support for column families

Summary:
This is the huge diff with the column family implementation.

I'm close to fully functional and tested implementation so I would like to get some feedback. I'm aware that this is a lot of code, but we need to do it at some point. Let me know if you have any questions.

My goal is to merge this into master (i.e. get this diff accepted) as soon as we push 2.8 release. That way, I don't have to manually merge all the changes from master (most of them are painless, but some are not)

Test Plan: Added column_family_test and also modified db_test to test on non-default column family. I will also be adding new tests and including column families in db_stress

Reviewers: dhruba, haobo, sdong, kailiu, ljin, yhchiang

CC: leveldb

Differential Revision: https://reviews.facebook.net/D16341
[CF] Fix lint errors in CF code

Summary: Big CF diff uncovered some lint errors. This diff fixes some of them. Not much to see here

Test Plan: make check

Reviewers: dhruba, haobo

CC: leveldb

Differential Revision: https://reviews.facebook.net/D16347