Partial Refactor of Array Containers

Initial work on refactoring the containers in the project. So far, this only pertains to the dynamic array implementation. Breaking differences in container semantics is that the new fld::Array implementation assumes stored objects are pods. This means complex objects, such as a container of strings (e.g. std::vector<std::string>) should be contained in the new implementation by reference (e.g. fld::Array<std::string *>).