erasure: simplify ec_decode_buffer()

- remove strip_size since it can be deduced from passed struct fec *ctx
- remove nr_stripe because nr_stripe for the buffer as a whole is always fixed
  and there is no use case to decode a partial buffer.

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
sheep: introduce ec_max_data_strip

This is a preparation patch

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
sheep: allow operating when nr_zones >= nr_data_strip

For erasure coding with x:y scheme, we can still promise the data reliability
with x nodes alive and provide services. There is no reason we don't do it in
sheepdog.

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
tests/func/076: test erasure coding with only x nodes alive

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
erasure: allow y >= x in x:y scheme

There is no technically reason that we must have y < x. So better remove this
condition. One use case is for smaller cluster with 2:x scheme, where x >= 2

Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>