Extensive refactoring

~everything was renamed

Maybe is now a generic type
    needed for queues

Queue is implemented
    needed for parallel gestalt
    currently generic
    not actually tested yet :/

Tree completely changed
    named better
    diff type smaller, saner

sequential gestalt has a single return
    still too big

to stress out about:
    Diff is totally wrong for the parallel version. Queue will have to use something else
    This refactoring took about a day and left me arguably behind where I was at the last commit