Failure to lookup a Blob, Commit, Tag or Tree isn't an error

Currently ```lookup``` will die if a blob, commit, tag or tree cannot be found. We should be returning ```undef``` instead.