DRY up abstract method code. Make Logs#messages abstract.
Use "adapter" instead of "subclass" in exceptions.
Rename Messages to MessageSet.
Improve test coverage for main constructor.
Limit test adapter teardown to examples that use it.
Use Dir.home instead of ~.
Add cleaner inspect output for Logs objects.