Added: subcosts, constraint checking & Random Controller

The details of sub costs are specified in the in definition of the
model.

The constraint checking in implemented but the following are still to
be done:
   > Inform the controller if constraint was violated
   > Clipping the control actions back into feasible set if a
constraint was violated

A Random Controller class (“Control_Rand_Local”) was added to provide a
more interesting example of how to create a controller.
Merge branch 'PaulsDevelopmentBranch'