[WAITING] Extend Cartfile syntax to support pinning to arbitrary branches/tags/commits

**:warning: DO NOT MERGE UNTIL 0.3 IS OUT :warning:**

Resolves #100.

Despite my thoughts in https://github.com/Carthage/Carthage/issues/100#issuecomment-63592872, **this does not attempt to resolve semantic versions with branch pins**. It would be much harder to do than I anticipated, and I ultimately concluded that explicitly specifying a branch probably justifies overriding any semantic versioning no matter what.

In other words, if an app really wants a particular version of RAC, specifying a branch or tag by name basically means, “No, seriously, use this one. I don't care what those other Cartfiles said to you.”

/cc @tonyarnold
It'll still write a specific SHA to `Cartfile.lock`, and only update when you run `carthage update`, so it's much safer than (say) using svn:externals against a branch.