crush: implement get_children(), get_immediate_parent_id()

Signed-off-by: Sage Weil <sage@inktank.com>
osdmap: implement subtree_is_down() and containing_subtree_is_down()

Implement two methos to see if an entire subtree is down, and if the
containing parent node of type T of a given node is completely down.

Signed-off-by: Sage Weil <sage@inktank.com>
mon: set limit so that we do not an entire down subtree out

Add new configurable 'mon osd down out subtree limit' so that you can
prevent marking out an entire subtree.  If for example an entire rack is
down, do not mark anything in it out.  If less than the whole rack is down,
everything is fair game.

Set the default to 'rack'.

Signed-off-by: Sage Weil <sage@inktank.com>
Merge branch 'wip-osd-down-out'

Reviewed-by: Samuel Just <sam.just@inktank.com>