Out with TryGet, in with GetOptional

... for the UnitOfWork (fixed the broken windows)
Also added equality to the Aggregate class (makes testing that much
easier and more complete).