erasure-code: locally repairable code plugin

Recursively apply erasure code techniques so that recovering from the
loss of some chunks only require a subset of the available chunks, most
of the time.

The implementation is documented in
doc/rados/operations/erasure-code-lrc.rst

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

Signed-off-by: Loic Dachary <loic@dachary.org>
erasure-code: relax profile parameter syntax

Do not restrict the character set of the key=value pairs of osd
erasure-code-profile set to allow for things like:

             layers='[
                       [ "_aAA_aAA", "" ],
                       [ "bBBB____", "" ],
                       [ "____cCCC", "" ],
                     ]'

Signed-off-by: Loic Dachary <loic@dachary.org>
erasure-code: test LRC pool, profile and crush ruleset

Using the command line to create an LRC pool validates that the plugin
can be loaded and the ruleset created immediately after the crush table
is populated with the default rulesets.

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