Implemented new THROW and ENFORCE macros

These macros allow you to throw exceptions without manually
passing __FILE__ and __LINE__ to the exception constructor.

Is the C/C++ preprocessor an ugly way to do things?
Yeah, but it beats manually providing the above information
every time.