Introduced new exception "CompilerError"

Many RuntimeExceptions replaced by CompilerError to clearly document
their purpose: an error situation inside the compiler that is not
directly related to an error in the Rascal source code being compiled.
Renamed RuntimeException to RascalProgramException
Pushing source locations of functions through whole compiler pipeline
Further reorganization of RascalprogramExceptions

- removed redundant loc argument
- commented out currently unused exceptions.
Merge branch 'master' of https://github.com/cwi-swat/rascal.git