[FINAL] Optimized ProcessOptimalSize.

There are two main parts to this PR:

1. Debug. This basically exposes the `DEBUG` compiler macro to LUA via MOAISim. Whatever compiler setting moai was built with is what MOAISim will return when you call `MOAISim.isDebug()`. This is not something we expect to use often, and no games should ever refer to it directly.

2. Optimal text sizing. This first checks the maximum font size for a fit, and then begins a binary search of the font size range. roundToInteger is no longer needed since granularity performs the same function and more. So if you pass in sensible defaults (at least for the max font size), you should see a sizable performance boost over the old code in the common case.