Refactoring

### In this update

- [x] Separate the code for displaying distorted images from UI code handling interactions.
- [x] Add some simple tests for matrix calculations and calculations on the distorted image (i.e. calculating its centroid).
- [x] Fix zooming so that the image scales smoothly during zoom (fixes jerky image refresh at the end of zoom animation).
- [x] Use [`L.Toolbar`](https://github.com/manleyjster/Leaflet.Toolbar) for the image editing toolbar (instead of [`L.easyButton`](https://github.com/CliffCloud/Leaflet.EasyButton)).
- [x] Remove extraneous dependencies on Leaflet.EasyButton and jQuery.
- [x] Pull in `EditHandle`, `RotateHandle`, `DragHandle` from `Leaflet.Illustrate`, either by copy-and-pasting, or by including `Leaflet.Illustrate` as a dependency.
- [x] Integrate editing handles into `L.DistortableImage.Edit` (for handling dragging, rotating, distorting interactions)
- [x] Integrate Jeff's other features - transparency, lock/unlock, outline, etc.
- [x] Support events on `L.DistortableImageOverlay`
- [x] Write tests for `L.MatrixUtil`, `L.DistortableImageOverlay`, and `L.DistortableImage.Edit` (brings automated test coverage from 0 up to 62%)
- [x] Add comments explaining the way that the matrix calculations and CSS3 transforms work to distort the image overlay.
- [ ] Fix crazy animation behavior during zoom when combined with certain rotations.