Fix pool file creation

Pool files are no longer created with the default "/24" range. Instead, this is
done dynamically the first time a request is made to the pool manager.

Started a new `PoolStorage` class which inherits from `YAML::Store` and adds
logic for intializing and upgrading the pool file data structure.
Re-implement upgrades of existing pool files

By overriding `YAML::Store#load` in `PoolStorage`, we can intercept data as it
is loaded and perform on-the-fly upgrades of the serialized data structure.
Add proper YARD documentation to PoolManager
Ensure PoolManager#generate_pool_for is idempotent