Fixed up the FlxShapes

Fixed a lot of inconsistency in the FlxShapes. Now the following should be true:

* Width/Height of shapes reflects underlying geometric boundaries (ignores stroke)
* Offset should be automatically set so that object's x/y matches expected position
   * X/Y = upper-left
   * Turn on debug lines, boundaries should be in the middle of the stroke (for a rectangle), etc.
You can have lowercase enum values, it's just another weird flixel convention to make them all uppercase (though admittedly, that's not too uncommon).

Even if you chose to stick to your "lowercase in xml" convention, it would seem to me that it's simpler to do a `xmlString.toUppercase()` than having 40 lines of code that handle from- and to-string-conversion (including a harcoded switch-case with every single enum value in it).