Moved action implementations into the modules directory
Refactored action callback mechanism

Actions can now be given a callback action to be executed once the
action completes. The CallbackAction will be given the result code and
a pointer to the action that just finishes before executing it.
For simple notification about finishing actions a CallbackNotifier was
added which will report all finishing actio events to a registered
IActionListener - the module wishing to receive the events.
Style changes

If a class is marked as an interface (IMyClass) the files name
should still be my_class.h.
Added Function class

A function object is an action that calls a function when executing.
The function given to the object must return void and take no arguments,
the return code of the action will (right now) always be Action::DONE.
This will later allow for nice inline programming by using c++11 lambda
expressions.