WIP: Add polymorphic arrays
The idea of using template meta programming to iterate over every possible array type that can be encountered is leading to significant compile issues. We are relaxing our constraints a bit to allow accessing array values through virtual methods. That way, different implementations can work together without having to compile a special case for every combination.