Prevent setting a FlxSprite to an invalid frame

Fixes https://github.com/FlixelCommunity/flixel/issues/13

Prevents an "out of range" frame number from being set either by an
animation, or by manually setting the `frame` property.

Adds new getter/setter `numFrames` where user can manually specify how
many frames an animation has (in case some frame are empty).

To go hand in hand with this is the read-only property `maxFrames` which
calculates how many frames can fit on that sprite sheet. NOTE: it rounds
up, so sprites may "hang off the edge" if the sheet is the wrong
dimensions. This may be fixed in the future depending on how other
applications handle "overhanging frames".