Bug 929494 - use template typedefs, not inheritance, to define nsTArray element copiers; r=ehsan

There's no reason to use inheritance here, and using plain typedefs avoids massive
amounts of code duplication for the common case of copying with mem*.  Code savings
on Android come in at about 570K (!), or ~2% of libxul .text size, which is a massive
win.