Split up manager.py into a package of its own

This change is backwards-compatible
Made requests actually abide by the `usable` flag for requests