Buffer: maintain a per line timestamp
Use a per line caching strategy for region highlighter
minor code cleanup
Clear buffer values explicitely in destructor

Buffer values could be registered as a listener, so we need to
get rid of them before asserting that all listeners have been
unregistered.
Store timestamp of last content modification in buffer lines

That means that lines that move around keep their timestamp.
Region highlighters track line changes in the buffer

This way, region highlighters only need to regex-parse lines that
actually changed. matches on lines that just moved around but whose
content did not change can be updated simply by updating their line
coordinate.
rename buffer_iterator.inl.hh as buffer.inl.hh and inline some more methods
minor code cleanup
minor code cleanup
Optimization and code cleanup in the region highlighter.
Much faster implementation of SelectionList::merge_overlapping