Improve mousepointertouch test

The logger was really starting to bog down, so split the layout part into a separate paint pass.

Split up the event logging to have discrete ones scroll on top and a readout of the continuous
ones below.

And more detail on parent events.
Make a parent per listener type

Also clip and hit test appropriately so you can see what's going on more easily.
Provide a way to stop event propagation
Add propagation stoppage to test
Add touch box to test
Fix detection of text wrapping

My new test code assumes that the height of a layout will increase each time \n is appended. It
hung the app and I traced it down to this.
Might as well do this the way all the other platforms do.
Expose the hit layer on the position event

Also moved the coordinate conversion to the constructor and omit localX, localY parameters.
Allow non-position events to be dispatched via Dispatcher.

If an event has no position, localize() is the identity function. I was going
to use this, but now I'm not, but I think it is still potentially useful for
the future.
Added support for canceling pointer/touch interactions.

This happens naturally on iOS when, for example, an alert dialog is popped up
in the middle of a touch interaction. We now communicate that to the game. It
is also now possible to cancel pointer/touch interactions programmatically.
This is useful in situations where you have two overlapping interactions, like
button clicking and flick scrolling. A user might start a touch interaction,
which arms a button, but then flicks their finger up or down to scroll. In that
case, you want to cancel the touch interaction with the button and process the
flick to scroll interaction.

This is now possible via Touch#cancelLayerTouches and Pointer#cancelLayerDrags.
Note that we only cancel interactions happening on layers. The expectation is
that if you are processing interactions in your global Pointer/Touch listener,
you can handle programmatic cancelation yourself. If we canceled the global
interaction, there would be no way to complete the desired interaction (the
flick scroll for example).
Eliminated AbstractCachingAssets, and watching in AbstractAssets.

The base Assets implementations now just load assets, as advertised. If you
want to keep track of unloaded assets in the aggregate, use the newly added
WatchedAssets wrapper. If you want to cache your assets for the lifetime of
your game with no cache expiration policy, use CachingAssets. If you want to do
both, use both. Such is the magic of a wrapping delegate.
Deprecated ResourceCallback and replaced with Callback.

ResourceCallback is now an abstract class which implements Callback. This will
be somewhat helpful in delaying migration to Callback, though it will totally
eliminate the need for migration. Preserving perfect compatibility with
ResourceCallback turned out to be too much of a pain and was delaying this long
needed cleanup.
Factored out some common callbacks handling.
Moved notifySuccess/Failure into AbstractPlatform.
Added Assets.getRemoteImage for loading images from URLs.

Images are loaded asychronously on all platforms (in threads on Java, iOS and
Android, and via the normal async image loading on HTML, Flash).
Let's have sensible defaults here. We want autocorrection.
Merge remote-tracking branch 'threerings/master'