Normalize Reference target access methods.

Rugged::Reference#target_id now returns either the target sha id for
direct references or the canonical target ref name for symbolic
references.

Rugged::Reference#target now returns the actual target object (either a
Rugged::Reference or one of the different ODB objects).

This also replaces Rugged::Branch#tip redundant.