Extend Cartfile syntax to support pinning to arbitrary branches/tags/commits

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