Refactor FunctionBlockFactory and -Class

Moves a lot of code from FunctionBlockFactory to FunctionBlockClass.
This is done so that the JavaClass can be stored as an attribute instead
of passing it for every method call. It also introduced more robust
FunctionBlock checking.

Options are now static final String attributes, the actual values will
be passed to the FunctionBlocks as a Map (to be done)