mon, crush: add mode to "osd crush rule create-simple ..."

Add a mode (firstn or indep) to the create-simple command.  Make it
optional and default to firstn (for compatiblity and simplicity).

Note: a "default=..." option for mon commands would be easier.

Signed-off-by: Sage Weil <sage@inktank.com>
osd/osd_types: pg_pool_t: fix /// -> ///< comments

Signed-off-by: Sage Weil <sage@inktank.com>
osd: add pg_pool_t::crush_rule

Add an explicit crush_rule property.  If this is defined (>= 0), it will
supercede the ruleset, which means we don't have to do the search through
the rules on every mapping.  It's also simpler.  Hopefully later we can
eliminate the rulesets entirely!

Signed-off-by: Sage Weil <sage@inktank.com>
mon: 'osd pool get hashpspool'

Signed-off-by: Sage Weil <sage@inktank.com>
mon: fix 'osd pool set crush_ruleset ...'

This was interpreting the argument as a rule id, not a ruleset id.  Unless
the user has customized their maps, these are normally equal, so probably
few people have been affected.  But, we should fix it!

Signed-off-by: Sage Weil <sage@inktank.com>
mon: 'osd pool {get,set} <pool> crush_rule'

Output the rule name if the rule id is valid.  If it is not, output the
id.

Note that the json schema for different pool properties varies between
int and string; we should fix that at some point.  :/

Signed-off-by: Sage Weil <sage@inktank.com>