ETSource "refresh" now performs a git-reset

Under no circumstances should a live server ever have a copy of a branch
which is different from the corresponding remote on GitHub. To prevent
(very rare) merge conflicts, we now do a git-fetch and git-reset to
ensure that branches always match those on GitHub.

Closes #561