Allow indexation methods to return a single value

Currently every value returned by an indexation method must be packed in a list or a set:

@my_index.values 
def my_indexation_method(self, value):
    return {value.lower()}

It would be nice if we could avoid the set when there is only one value:

@my_index.values 
def my_indexation_method(self, value):
    return value.lower()

Sheraf should detect if the returned values is a set or a list, and if not, it should set it in one set or list.

I don't know how we should consider a method returning a None value. Should it mean no indexation or the index key is None?

Edited by Éloi Rivard