Add command interfaces

Adding some interfaces for commands.

I am open to suggestions on this pull request.
I like CommandSource better, dont forget this is not a bukkit copy