Correct decode, begin to make array access safe
o Implement array_safe over std::array with bounds checking
o Begin implement carray_safe C array wrapper
o Correct rotation of generated parity in encode
o Initialize lambda in decode
o Clean up spacing
o Always apply corrections to both data and parity, and return
  corrections if array provided.
Complete implementation of array_safe
o Import all types and methods from base std::array, plus constructors
o Define ARRAY_SAFE, ARRAY_TEST to force usage (and test) array_safe
o Convert all reed_solomon templates to use standard naming