Implement persistence and synchronization for pool.yaml

This patchset re-works the internals of the `PoolManager` class such that it also handles serialization and deserialization of state to `pool.yaml`. This is accomplished through the standard library class [`YAML::Store`](http://ruby-doc.org/stdlib-2.0.0/libdoc/yaml/rdoc/YAML/Store.html) which implements a file-backed `Hash`. Changes in state are automatically flushed and operations between multiple processes are protected by `File.flock`.

This introduces a slight incompatibility for anyone running the current HEAD after #11 landed. To fix, open up `pool.yaml` and replace the serialized object header:

    --- !ruby/object:AutoNetwork::PoolManager

With:

    ---
    poolfile_version: 2

The rest of the file contents can be left as is.