Fix how points are transformed without an affine component.

* Also moved helper methods to their own class.
* Add unit tests for the no-affine case.