Modify interaction for feature modification

The Modify interaction allows feature modification. It listens to `INTENTCHANGE` events on the `layers` it is configured with, and allows modification of features with 'selected' renderIntent. History of changes is preserved by setting the `original` on the modified feature.

This pull request also includes the changes proposed in #1265 and #1267.