Add header cache to DBObjectMap

OMap is used by PG to store PGLog, so it's called by each write operations.
Because leveldb don't play well in random read and "header_lock" limit the
concurrence. Add a LRU cache to avoid too much overload on seeking header.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
mon: fix set cache_target_full_ratio

It was a noop because it was incorrectly using the variable n. Add a
test to protect against regression.

http://tracker.ceph.com/issues/8440 Fixes: #8440

Reported-by: Geoffrey Hartz <hartz.geoffrey@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
Merge pull request #1873 from dachary/wip-8440

mon: fix set cache_target_full_ratio

Reviewed-by: Samuel Just <sam.just@inktank.com>
Merge pull request #1811 from ceph/wip-perf-atomic

perf_counter: use atomics instead of mutex

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
Merge pull request #1813 from ceph/wip-old-out

mon: restore osd weight after auto-mark out and then osd restart

Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Loic Dachary <loic@dachary.org>
Merge remote-tracking branches 'upstream/wip-smart-df', 'origin/wip-7999', 'origin/wip-8396' and 'yuyuyu101/omap-cache' into wip-sam-testing-2