Convert Planner to a namespace

This is just a simple cleanup to help me get better acquainted with the code. I ended up refactoring a few extra bits to keep things tidy. As a result, Planner is no longer a friend to anything, and Conveyor provides better encapsulation of HeapRing (necessitated by Planner's newfound lack of friendliness).

These changes were successfully compiled using gcc-arm-embedded-4.8-2014-q1 and tested on SmoothieBoard v1.0.