#226 - added Factored Frontier
Fixes for #231 and universe registration

It is no longer assumed that elements that depend on elements in one
universe are necessarily in the same universe.

Additionally, all of the element maps are now registered, and clearing
the LazyValues associated with a universe removes it entirely.
Fix for #231

Changed getNeededElements to correctly expand elements in other
universes. However, it will only return elements in other universes if
they are supplied as starter elements.
Make hasStar and regularValues vals

Because these methods act on immutable objects and have no side effects,
they can be changed to vals for performance.
Fixes for universe registration

Allows maps using this universe or its elements to be deregistered
without clearing the universe, and allows FactoredAlgorithm to correctly
look for elements in other universes.
Tests for multi-universe factor creation
Test for multi-universe expansion