Major Reactor of how Tuple Elements are managed.

Before it was necessary to know the type before using an element. Now
algorithms can be written without needing to know the exact type.

I conduct some small benchmarks, this has hit performance, but
hopefully, the speed of development + a more flexable framework should
counter any particular delays in processing the data.