Added a forward-declaration header, moved source_location_exception into its own header and source files