erasure-code: parse function for the mapping parameter

Each upper case letter is a data chunk. For instance:

    _AAA_AAA

is going to parse into:

   [ 1, 2, 3, 5, 6, 7 ]

the 0 and 4 positions are not used by chunks and do not show in the
mapping. Implement ErasureCode::parse to support a reasonable default
for the mapping parameter.

Signed-off-by: Loic Dachary <loic@dachary.org>
erasure-code: rework ErasureCode*::parse methods

The ErasureCode::parse virtual function is derived in
ErasureCodeJerasure. It is reworked to share parsing arguments the
various techniques have in common. The logic is otherwise unmodified.

Signed-off-by: Loic Dachary <loic@dachary.org>
erasure-code: ErasureCodeInterface::get_coding_chunk_count

New convenience function that returns get_chunk_count() -
get_data_chunk_count(). It is implemented in the example and in the
ErasureCode base class.

Signed-off-by: Loic Dachary <loic@dachary.org>
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>