extract Orbit from StarSystem and display player orbit in SystemView

The Orbit structure from StarSystem.cpp is pulled out into its own
files Orbit.h/cpp, and other orbital calculations are turned into
static functions on that struct.

Orbit struct and calculations are also altered to work for hyperbolic
trajectories.

DynamicBody gains a ReturnOrbit method to compute the orbit of the
body, and this is used to plot the player's orbit in the System View.

Note: This was originally a 15-commit PR from irigi.
I (@johnbartholomew) am squashing it into one commit because the
history is messy but I don't want it to lose irigi as git author.
clean up includes a bit in Orbit.h/cpp
add const versions of Frame::Get{Non,}RotFrame()
SystemView::PutOrbit: don't send unnecessary duplicate vertices
SystemView: const SystemBody, and const-reference params
Orbit: calc_orbit -> FromBodyState; DynamicBody: {Return -> Compute}Orbit

The weird prototype for calc_orbit has been cleaned up into FromBodyState.
FromBodyState is a static method that constructs a new Orbit from the
body state parameters.

DynamicBody's unused internal "orbit" member has been removed.
clean up the interface of the Orbit structure
Orbit shouldn't need to know about the game clock state
make mean/true anomaly conversions in Orbit private
Orbit: formatting, efficiency and boundary-condition clean-up
extract common code from TrueAnomalyFromMeanAnomaly and OrbitalPosAtTime