Added With method to Catalog

Catalog.With lets you specify a modifier that will be applied
to every registration within the with block, removing a lot
of duplication if you have a lot of singletons, for example.