Support YAML.dump and YAML.load for Agent objects

Hey @lostisland,

The changes in this pull request ensure instances of `Sawyer::Agent` can be correctly dumped to YAML, and loaded back in from YAML.

They are similar to the changes in [this commit](https://github.com/lostisland/sawyer/commit/c706f111644ba4c8d074c8f83967afc950335094), which did something similar for instances of `Sawyer::Resources`

Thanks,

@pvdb