make all rest calls uppercase, add PUT call, add ability to call actions

* to avoid clashing with python methods such as get and to be clear when
  network round trips are happening, make all rest methods uppercase
  in the client
* add the ability to PUT data
* returned objects now execute rest commands on their resource endpoint
* actions keyword is added so you can now call actions hanging off of
  REST endpoints (e.g. to put an Instance in maintenance mode you can do this
  instance.PUT(action='maintenance', data={'maintenance': True}))
update docs to reflect change in API