Text object wraps at 100 pixels instead of specified width / dimensions corrupted by updateBuffer()

Create a Text object with word wrap on, center alignment, a large text string, and set a Text width of say 300. This runs fine on Flash, but on CPP targets, the line wraps much sooner. In fact, the call to _field.textWidth returns a curious 100. I believe this this fails in CPP because Flash.text.TextField uses 100x100 as the default size, and hardware rendering never sets the _field dimensions when a size is passed in. In Flash, updateBuffer sets the _field.width to match the buffer size. The same does not happen for hardware render using the atlas region. The first commit change assigns the _field dimensions in the constructor for hardware rendering.

Switching to a smaller text string, one that does not cause wrapping, seems to make the alignment go back to LEFT. What's happening is in updateBuffer() the TextField's width is reset to the actual rendered width of the TextField. The second commit adds autoWidth and autoHeight variables, which are only set/checked when the corresponding dimension is passed in as 0, which fixed centering in my test cases.