Adding permissions to Terasology.

This adds concept of permissions to players. Each player may have many different permissions, identified by name of the permission (case-insensitive).

The local player is considered to always have all permissions.

At the moment, the only use for this is in @Command that allows specifying which permission is required to be able to invoke this. Keep in mind, that this works only for commands run on server. In the future other systems might use permissions with PermissionManager interface.

I've added two new commands "givePermission [playerName] [permissionName]" and "removePermission [playerName] [permissionName]". Both of those commands, as well as many other commands already existing in Core/Engine now require "op" permission to run them (unless you are local player).
immortius: the thing is, that that's the only exception that is caught by the ConsoleImpl and is sent back to client... I guess ConsoleImpl should NOT be catching IllegalArgumentException, instead have a new checked exception, but I wanted to limit the modification of the code, hence the IllegalArgumentException.