Adds UnavailableInterfaceError
In order to report than a perticular function is not implemented (or
is not available at runtime for whatever reason), A new runtime_error
has been introduced to report this. It has an interface to give back
the class/function name, the reason and and a nice user notive.
Now NotImplementedError is deriving from this new class (this is a
perticular case when a method is not implemented). Constructor should
provide the component name, to report in which component it is not
implemented.
amarsi_refs #482