fix for issue 812

The cause of the problem seems to be in:
```scala
final class ofRef[+A <: AnyRef](array: IA.ofRef[A]) extends ofImmutableArray1[A](array) {
   protected[this] lazy val elemTag = ClassTag[A](array.getClass.getComponentType)
```
getComponentType returned null as 'array' was a wrapper class. If getComponentType is called against the original array being wrapped/unwrapped - it works fine. The fix preserves getComponentType for the original array and then uses the preserved value.
Added test for "Issue #812" in ImmutableArrayTest which duplicated the problem before the fix and now runs fine.