Verify a user using the verification hash

        The verification hash is removed from the user once verified

        :param user_id: the user ID
        :param verification_hash: the verification hash
        :returns: a User instance

def verify(cls, user_id, verification_hash):
        """
        Verify a user using the verification hash

        The verification hash is removed from the user once verified

        :param user_id: the user ID
        :param verification_hash: the verification hash
        :returns: a User instance
        """
        user = yield cls.get(user_id)

        # If user does not have verification hash then this means they have already been verified
        if 'verification_hash' not in user._resource:
            raise Return(user)

        if user.verification_hash != verification_hash:
            raise exceptions.ValidationError('Invalid verification hash')

        del user.verification_hash
        yield user._save()

        raise Return(user)