'Give an award to a user, unless they already have it.
Returns the trophy. Does nothing and prints nothing
(except for g.log.debug) if the award doesn\'t exist.'

@classmethod
def give_if_needed(cls, codename, user, description=None, url=None):

    try:
        award = Award._by_codename(codename)
    except NotFound:
        g.log.debug(("No    award    named    '%s'" % codename))
        return None
    trophies = Trophy.by_account(user)
    for trophy in trophies:
        if (trophy._thing2.codename == codename):
            g.log.debug(('%s    already    has    %s' % (user, codename)))
            return trophy
    g.log.debug(('Gave    %s    to    %s' % (codename, user)))
    return Trophy._new(user, award, description=description, url=url)
