Correct "dirty" side detection

An overzealous `.removeClass` call was stripping the `.dirty` class from `Sides` during CSS class remarking. Also, marker updates only fire when the marker's head or tail have moved, which doesn't happen on all edits: appending to an interior line, for example.

This constrains it to only remove conflict-marker classes from actual line elements, and re-detects dirty status on every content modification from the buffer.