SSP-908 Move MyGPS MAP access to new APIs

This makes MyGPS MAP access consistent with most of the rest of MyGPS
server callbacks where even if we're serving the same basic data as
we do to the Ext.js app, we create new APIs in a new namespace so
it's very straightforward to limit access to a single GPS permission
and make sure students only see the data they own.

So there are two new APIs in this commit:

  /ssp/api/1/mygps/plan/current
  /ssp/api/1/mygps/plan/print

In order to reuse code that was previously inlined in
PlanController, I refactored a fair amount of code having to do
with MAP printing into PlanServiceImpl. This mainly involved moving
getContent() out of the controller and making it
AbstractPlanService#createContent() instead. The name change matched
existing conventions in that class.

And was probably overly aggressive, but while I was at it I also
refactored AbstractPlanService#createMatrixOutput(),
createFullOutput(), and validate() method signatures to not accept
string values as input where the same values could (should) be looked
up from within the service implementation.

The relocated APIs required a few trivial changes to the GPS client to
change the targeted URLs.