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.
Yes.  Remember that apoapsis was available for Vessel and Body even though it actually comes from orbit, as was periapsis, altitude, and so on.  I figured the most consistent approach would be for me to either go all one way or all the other.  Either everything from Orbit is also in Vessel and Body, or nothing from Orbit is also in Vessel and Body.  What didn't make sense was the previous case where only SOME was available and SOME was not.

So given that I wanted to pick one or the other - either move everything you could get from OBT *out* of Vessel/Body and remove it from Vessel/Body, or copy everything you could get from OBT *into* to Vessel/Body and make it available from either location, I looked at which approach broke the most code, and moving things into OBT from Vessel/Body would break pretty much everyone's scripts.  Better to be able to do the same thing two ways than make it only possible to do one way but in so doing break all existing scripts.

So, basically, if you're talking only about the CURRENT orbit patch, you never need look at Orbit.  Everything in the first Orbit patch of an Orbitable is also available from Orbitable, and returns the orbit data of the current orbit patch.  But if you want to look at future orbit patches, then you need to traverse them as a list of objects of type Orbit.