Big refactor to prepare for data cloning

- MicrotomeCtx is the public interface that clients use to access
the "LibraryManager" (whose name needs to change)
- XmlLibraryLoader is replaced with MicrotomeXml and is decoupled from
LibraryManager
- LibraryItems get "_parent" assigned by the parent they're being added
to.