Add Array Monoid & Group.

Adding monoid & group for arrays.

The monoid takes the provided arrays and does pair-wise addition of the elements. If one array is longer than the other, the result is longer.size in length with the items from the longer copied over. zero returns an empty Array.

The group extends the monoid and implements negation by calling negate on the individual items of the array.
can you add tests using monoidLaws and groupLaws for commutative and non-commutative cases?  An example non-commutative monoid would be String (I am not sure we actually have any non-commutative groups implemented, but for fun you could do quaternions).