Orbitable base class Resolves #133

Please see issue #133 for a long, full list of the user-visible changes.

The reason so many files are affected is that the constructors had to
be changed slightly so everywhere a VesselTarget or BodyTarget are created
was modified a little.  Also a few places were changed to operate on the new
generic Orbitable object so they now operate on Bodies as well as Vessels.
I am not talking about the bloat in our c# code, I am talking about bloat in the kerboscript definition of a vessel and its attendant documentation. I like the Orbitable class and I believe it will help simplify the interaction between two KSP constructs that should share much more than they do in the KSP API.

The issue I take with this PR is that this was talked about as a refactor, only changing the private implementation in preparation for another PR that would add a few more features leveraging our new polymorph. This PR adds many suffixes to VesselTarget and BodyTarget.  If i misunderstood your idea then i apologize but these changes are outside the scope that i anticipated. 

Im not saying that i will never accept more suffixes to VesselTarget. I just think we should be careful about what we add. Im not saying that i dont like 90% of the work you have done here, we just didnt discuss a change to the kerboscript API with this PR.