Catch exceptions by reference

We use polymorphic exception objects, so catching by value invokes
the copy constructor and stuff that we don't really want.
9 files changed