Updating a LoadBalancer requires a LoadBalancerRequest, which is not
easily creatable from a LoadBalancer.
Serializing the LoadBalancer to JSON and then deserializing it to a
LoadBalancerRequest mostly works, except that Region is a string on
the Request but not on the LB (since the LB returns the entire
Region object), so json.Unmarshal returns an error.
An explicit AsRequest method makes it easier for consumers of the API
to modify existing LoadBalancer objects, and is designed to avoid
modifying attributes on the original LoadBalancer when the
LoadBalancerRequest is modified.
This patch updates the godo package to use a portable Go context -- a
Context that works with Go versions prior to Go 1.7 as well as Go 1.7
and onwards.