Merged exception.h and extendedexception.h into one exception.h, and fixed the includes

I needed to have the extendedexception use std strings again, because my strings class
depends on the exception header, so it would be a circular dependency. But now my exceptions
are not dependent on any other GUtil header apart from iclonable, which is a dumb interface
and doesn't throw exceptions.