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.)
@photonstorm Thanks for the reminder, I've definitely been bitten by hitting a keyword in such a case. I don't know of any differences here (it works in IE9+), but I'll definitely remember to keep it in my mind when coding.

I've put out a "call" to http://stackoverflow.com/questions/26834803/can-x-y-and-xy-ever-result-in-different-behavior-for-host-objects , hoping to try and get additional insight into when this may be a factor.

I grossly unaware of any Cocoon/Crosswalk issues.