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).
This exception type doesn't make sense - it isn't an illegal argument exception (not is the one above it)