This includes some variable names in tests which don't seem important enough for their own commits. Contributed by Josh Soref.
In particular, "stop" errors are no longer reported as "unexpected".
Refactor storage layer to allow for new repository filesystems using drivers. (Reviewed by Cynthia Shang.) Refactor IO layer to allow for new compression formats, checksum types, and other capabilities using filters. (Reviewed by Cynthia Shang.)