Make loading new commands easier

- Add a plugins directory where plugins can be written to. 
  - Every plugin should have one main function, which can either take one, two, or three arguments. 
  - All return statements are messages sent back to the user running the command. 
  - All print statements are messages broad-casted to all users. 
- Gist commands use the same mechanism, by writing them into gist_plugins directory. 

@baali, @cloud9computing want to review?