Math: work around missing std::round() in NaCl newlib.

Also test that our implementation behaves the same.
Platform: add at least some support for wheel events to NaClApplication.

In NaCl the wheel event is something completely different than mouse
event and in my opinion overly complicated (the scrolled distance is
measured in pixel precision!).

To preserve at least some compatibility with other toolkits, the events
are shoved into normal MouseEvent. Sadly the event doesn't contain any
position information.
external: updated Optional with Native Client support.