Snap events to the end of the previous one if dragged/dropped

Right now it

[x] clamps events before the next one if the top of the dragged box is above the top of the other one
[x] clamps events after the previous one if the top of the dragged box is below the top of the other one
[x] leaves the events as superposed if after the first check there's a new conflict
[ ] doesn't persist the schedule if there's conflict
[ ] informs the user there's a conflict