Fix checkout when preparing a ref

The new checkout method was relying on out of date information
stored in the remote which was not being updated by the fetch
command.  Instead, just checkout FETCH_HEAD using git directly
so that the remote does not need to be kept up to date.

Also, reset and clean _before_ checking out, since that's supposed
to clean up from messy merges, etc.

Change-Id: Ie47b675512edc36e8aeb9b537ca945ad8d07b780
Merge "Fix checkout when preparing a ref"