Error updates

This PR is to throw more specifically typed exceptions in several cases - most notably when objects cannot be found or cannot be dereferenced to a commit.

The second commit is to add an exception to indicated an exception case around the Pull operation.
Boilerplate xmldocs are sad