Make the 'is*Taken' methods DRYer

Both `isUsernameTaken` and `isEmailTaken` are extremely similar and only have one word changed. In favour of [DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself), I've pushed them both into a new `isFieldTaken` method.