Fix hasFile implementation.
Make List extend Array.

 * Use native forEach if available.
 * Update copy() to use correct constructor
 * Update concat() calls to assume a new object is returned