RAII wrapper around Linux inotify

Update of #133 for our current commit state, removing all the excess changes that PR picked up, and modernizing unique_ptr creation to use std::make_unique.

@JasonL9000: Look good to you?