crush/mapper: drop confusing const for descend_once

Signed-off-by: Sage Weil <sage@inktank.com>
crush/mapper: add support for descend_once == 2

Try to move past the not-quite-right behavior of the descend_once
tunable (wherein it will not stop on a collision).  Make the new
behavior identical to what you get from the 'indep' buckets.

Signed-off-by: Sage Weil <sage@inktank.com>
crush/CrushWrapper: make descend_once==2 the new optimal

Signed-off-by: Sage Weil <sage@inktank.com>
mon/OSDMonitor: allow setting 'firefly' tunables

Signed-off-by: Sage Weil <sage@inktank.com>
osd/OSDMap: add feature bit for TUNABLES3 (== CRUSH_V2)

Add a feature bit for the new tunables.  Re-use the same feature bit
as CRUSH_V2 because the support is part of the same code update.

Signed-off-by: Sage Weil <sage@inktank.com>
crush: fix usage typo in show-utilization

Signed-off-by: Loic Dachary <loic@dachary.org>
crush: output --show-bad-mappings on err

Instead of using stdout so that it displays well when used in
conjunction with --show-statistics

Signed-off-by: Loic Dachary <loic@dachary.org>
crush: add CrushTester accessors

Signed-off-by: Loic Dachary <loic@dachary.org>
crush: --show-utilization* implies --show_statistics

--show-utilization* outputs only if --show_statistics is set, which is
confusing. Instead of failing, set --show_statistics to avoid the
confusion.

Signed-off-by: Loic Dachary <loic@dachary.org>
crush: document the --test mode of operations

Signed-off-by: Loic Dachary <loic@dachary.org>