Add a second insert function that always chooses the existing element (there is no function passed in to resolve conflicts).
Implement the default behavior of isRed(), isBlack(), asRed(), and asBlack() in the base class and have the subclasses implement overides.  This allows us to share code and so some methods can be deleted.
Fixed countless bugs + lots of code refactoring.  The implementation now appears to work, for both insert and delete.
We have to write lots and lots of tests.
Made the rngs explicit in the Numerics module so that we can have consistent runs when producing random inputs.