WiP: Added reboot api client 

This is the third pull request for the reboot implementation. Please note that this is still a Work in Progress and a followup commit will be done for cleanup.

This PR depends on:

https://github.com/juju/juju/pull/707
https://github.com/juju/juju/pull/728
It's not idiomatic to return a non nil result when err != nil
We either need to return nil, err or params.ShouldDoNothing, nil
In the latter case, I would think that there'd be some sort of rule which determines which errors are acceptable to return ShouldDoNothing vs just returning an error?