Conflict resolution

This implements Conflict Resolution as discussed on #1053 

* At save time, retrieve latest versions of all modified nodes
* Merge non-conflicting changes to tags
* Merge non-conflicting changes to way nodelist (using diff3)
* If a modified entity has been deleted remotely, restore it (related #2475)

Still to do
[ ] some minimal UI for listing the unmergable conflicts for the user
[ ] allow user to download the changeset if automatic merge fails
[ ] merge non-conflicting changes to relation members for some types? (I think the `route` type would be safe to diff3)

@jfirebaugh, @aaronlidman want to take a look?