Refactoring: Remove unneeded public API
This branch removes a lot of unneeded public API:
- Removed exceptions from public API, except for ElementError and SourceError
- ElementError and SourceError declarations moved to element.py and source.py respectively, for clearer documentation
- Removed Mount and MountMap accidental additions to
sandbox.pypublic API, these should never have been public, they are sandbox implementation details - Removed Project from public API
- This required adding a couple of APIs on the Source object to make up for it, but leaves us with an all around leaner API