RFC: First iteration of WatchPatch class

The intention is to use it to monitor changes to repositories, so that
we can avoid parsing again and again if nothing has changed.

With some API enhancements we could even get the event list to do
stuff like automatic repo reloading.

Stuff I would like feedback:
- How to handle the errors (buffer too small, failed poll) w/r to the hasChanged() return value
- Would an interface offering an iterator over the last events would be better than a simple hasChanged()?
  (for example, if we would like to reload stuff, you need to know also _what_ changed, and we _have_ this information).
- Code in general. The flow may be simplified further.