Refactor of Jackie

This splits all commands into command objects which handle all of the permission checks, validation and DB access.

### Adding a new Command

Adding a new command is easy:
1. create your command "class" and implement the ```_execute``` method (commands.js)
2. export your command by adding it to the bottom of module.exports (commands.js)
3. register your command in the command handler (bot_base.js) ```configureCommands```

### Notes
* if your commands needs DB access make sure to sub-class the DBCommand class (this will verify a DB connection and provide helpers for db access)
* if your command requires a param, make sure to set ```needsParam: true```
* if you need to validate a command implement ```isValid``` and return something if the validation fails. If nothing is returned the command is assumed to be valid
* make sure to set ```PERMISSION_LEVEL``` accordingly on your commands, the default permission allows anyone to run the command.