Fetch support.

This supersedes #203.

It looks mostly ready so I'm open to suggestions. It misses tests (again :-S) and documentation.
We need an additional method in `NSError` for this, so we can add entries to the `userInfo`. Does this signature look ok to you?
`+ (NSError *)git_errorFor:(int)code userInfo:(NSDictionary *)userInfo description:(NSString *)desc failureReason:(NSString *)reason, ... `