'Create a Bookmark object.
Arguments:
data (dict): The data to create the object with.
Returns:
A Bookmark object.
Raises:
ItemNotFoundError: If no block exists for the usage_key.'

@classmethod
def create(cls, data):

    data = dict(data)
    usage_key = data.pop('usage_key')
    with modulestore().bulk_operations(usage_key.course_key):
        block = modulestore().get_item(usage_key)
        xblock_cache = XBlockCache.create({'usage_key': usage_key, 'display_name': block.display_name_with_default})
        data['_path'] = prepare_path_for_serialization(Bookmark.updated_path(usage_key, xblock_cache))
    data['course_key'] = usage_key.course_key
    data['xblock_cache'] = xblock_cache
    user = data.pop('user')
    (bookmark, created) = cls.objects.get_or_create(usage_key=usage_key, user=user, defaults=data)
    return (bookmark, created)
