Add copy constructors and operators for array portals

Although it should not be necessary to create copy constructor and equal
opeartors that do a basic ivar copy, we have had problems with the default
versions provided by the compiler. Sometimes they end up very slow for
no particular reason. Also, by providing templated copy constructors, the
array portals can be allow type casting that you would expect.
Merge branch 'array-portal-copy'