Added a template util which swaps a type wrapper for another.

In other words it could convert std::tuple<int, bool> to a
boost::variant<int, bool>.
Removed an old #undef that isn't significant anymore.
No need for boost, we have std::is_fundamental!
Requests can now be serialized and deserialized without worry of the actual Request type.
No need for getVolume mixed into the serialize functions.
Object, BallOptions and PaddleOptions now hook into the template parser and serializer.
PhysicsOptions parse is now separate from the Object parser.
Added a SetObject method.
No need for that stupid animation in the menu!
Added a class and parsing code specifically to hold client settings.
Changed the default font colors to more anti-aliased friendly values.

By interpolating between the same color with opposite alpha values we get
a much better transition where it matters. For instance when text is
being rendered around or on top of other objects of the same color.
Previously these labels' colors were interpolated (not really because it
was monochrome) between opaque white and transparent black which looks
weird when rendering grayscale text.
A shiny new anti-aliased font renderer!