This refactors the Archive package to be Object Oriented instead of just static wrappers of functionality. I've also added the ability to override any particular adapter type with your own implementation if you prefer via the setAdapter method.
I've also started the documentation on it, but need to add in how to use setAdapter. If you like the way this is going, I'll continue with it.
First go at refactoring Archive to be OO instead of static.
Fixing up UT's
Fixing up UT's (again)
Updating Archive docs
Updating to use sys_get_tmp_dir() if not supplied. Updating docs.