Reworked the command registration system

Please read the [javadoc](https://github.com/Limeth/Terasology/blob/16965803d4edd128ce5baaa3c35e814de26752f3/engine/src/main/java/org/terasology/logic/console/Command.java).
Interface names should not start with 'I'.
Standard convention would be for this interface to be called 'Command', and the class 'Command' could be 'BaseCommand' or 'AbstractCommand', or some name suggesting how it is implemented (reflected command?)