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).
I am dubious about the value of this feature. What is the use case for allowing a developer to have a different array delimiter for a param, and would it not be better for the array delimiter to be the same as the param delimiter?