Exposed Error Objects in Interface Methods

Bubbled up errors in *most* internal methods to expose them in the interface. Updated .gitignore file.