Updated the dishwasher interface between driver and manager

The driver is now responsible to create the energy profile that is
corresponding to the program. Also the control parameter now support
explicit starting of a specific program at a specified time.

This also means that the driver is responsible to start the dishwasher at
the selected time, if the hardware doesn't support that option.
Added the startTime to the dishwasher state

Also extended the JavaDoc to describe what null values in the state mean
First version of the messaging framework

Implemented a first version of the API
Implemented a first simple test
Implemented a first version of the runtime

It does find matching connections, but connecting them doesn't work yet
Some renaming to make the API more clear
Implemented the single connections with seperation of threads
Added handling of uncaught exceptions in the Endpoint thread
Split the EndpointPort implementation to 2 types for single and multiple cardinality
Removed code that is no longer used
Ok, the last attempt became too complex. New way...

Now the matching between 2 ports itself will create the connection.
The only problem now seems to be waking up the threads of the endpoints.
That part still takes too long and therefor the 2nd testcase fails.
Fixed a possible deadlock situation.

The wrapper is calling isConnected on the MatchingPort, which locks. If at
the same time an other thread tries to send a message, for which you need
to lock the wrapper to send the notification, you could end up in a
deadlock (until now seen once in the testcase). This should fix that.
Fixed waking up the right endpoint when sending a message.

It was waking up the sending endpoint in stead of the receiving endpoint.
Cleaned up the testcases a bit
Added more extensive testcase with 4 endpoints in a pipeline

The testcase doesn't seem to be working perfectly. Still working on it.

Also fixed a small warning of bnd (bin path of the test directory).
Upped the version of the runtime to 2.0.0
Extended chain test to see a problem that only occurs once every while

The problem is probably in the wait/notify dependancy. Maybe the notify
can be called before the wait has started?
Added extra boolean in the EndpointWrapper to keep track if there are new messages
Fixed some possible deadlock situations in the testcases
Replaced the queue for each connection with a queue for each thread

This new queue stores commands that are to be executed
Changed the API of the ConnectionManager to be more usefull

Also fixed the implementation and tests accordingly
Added autoconnect method on the ConnectionManager

- Changed the API for the ConnectionManager
- Implemented the autoconnect in the ConnectionManagerImpl
- Added more debug logging when endpoints and ports are detected
- Added more debug logging when connections are being made
- Fixed inheritance detection of annotions
- Calling connect on a PotentialConnection no longer fails when it is
  already connected. Now it just ignores the call.
- Added isConnected check to disconnect method
- Added autoconnect test in one of the testcases (need to be expanded further)
Added test for when an interface defines a port which should be specified
further by an implementation. When the implementation does not define the
port, it should be registered as an endpoint.

Fails in the current implementation.