ScaleManager: more cleanup, pre-merged

A few minor fixes, a few internal quibble/compatibility updates.

Initial support for a "USER_SCALE" mode - marked as protected/experimental. Basically it just applies a pre-set scaling factor. It's not finished because NO_SCALE and USER_SCALE need to be examined in how they (do or don't) honor maximum and minimum dimensions and the parent bound limits:

- Should the Canvas be cropped to the parent (without affecting the game dimensions/scaling)?
- Should they be scaled back (proportionally) even through they have a fixed size set or allowed to overflow on a specific dimension?

This does pull out a change for `fullScreenTarget = game.canvas` (if fullScreenTarget is assigned then the createFullScreenTarget function is never invoked and center scaling won't work in FF/IE.)
Be careful this doesn't crap out on non browser environments like Cocoon and Crosswalk (although quite frankly they have enough of their own issues too!) - do check IE9 though.