Documentation and ILink pruned

Removed the ILink interface.
Added documentation to the implementation.
Generalized the Status Event Callback.
Updates some minor things.
Changed the semantic of also IDevice and IOutput from connection to initialization.
Added an IOutputCallback to carry the state changes of the output.
Added OutputStatus enum.