New Uize.Test subclasses + Uize.Comm updates + other goodies

This pull request is highlighted by new `Uize.Test` subclasses aimed at providing helper methods for testing `Uize.Class` subclasses, `Uize.Widget` subclasses, and widget bindings.

There are also improvements to `Uize.Comm` and `Uize.Comm.Ajax` for error handling. The AJAX object would die before if an error occurred.

There are other miscellaneous fixes outlined in the commit logs.
Well, we should make sure that the previously existing ability to copy binary files is retained. Perhaps that means doing a copy and then somehow touching the file to ensure that the modified date is updated. I think you had mentioned something about that being an issue in the difference between the behaviors of the two modules. A native copy should always be better, if available, so we should try to leverage what can be. The purpose of an adapter is to create parity at the interface / behavior level, so there doesn't have to be parity at the implementation level.