Possible renaming of interfaces.

Get rid of the BestAPIVersioner as an interface.

Change the root api.State.Call into api.State.APICall and change the facade
wrapper to use CallFacade. The latter will be renamed to FacadeCall in the
next patch.
CallFacade doesn't fit very well tone wise, and doesn't follow the FooCall
pattern.
Rename all of CallFacade to FacadeCall.
Switch from isa to hasa as the relationship between the api facades and their facade caller.

This also changes some of the call sites so that 'life' helpers are gone, since they are replaced with
something pretty concise by itself, but I didn't change all of them. I might go back, but I think I
prefer the inline form.
Rename the internal 'caller' attribute into 'facade' attribute.

This hopefully will make it clearer what is actually going on. No guarantees, though.
Change common.EnvironWatcher to use the FacadeCaller interface.
Track down the last few that weren't using FacadeCaller.

The Watcher code itself can't use FacadeCaller, because it wants to pass an Id.
We could change the FacadeCaller code, but I don't think its worth it.
It should keep it easier to reason about how the code is flowing that all FacadeCall
are not tied to an id.

This also gets us away from the proliferation of func call() methods on every
client-side Facade implementation.