Custom type of Set and Map serialization

For custom type of Set and Map serialization.
Set:
------------

    @Column
    @Serializer(FooSerializer.class)
    private Set<Foo> fooSet;

`SetColumnMapper` gets FooSerializer from **@Serializer**.
If there is no explicit **@Serializer**, then it will inferred from `Foo`, which is the first generic type.
Map:
------------    
    @Column
    @Serializer(FooSerializer.class)
    private Map<String, Foo> fooMap;

`MapColumnMapper` gets FooSerializer from @Serializer only for **value** part, not for key.
If there is no explicit @Serializer, then it will inferred from 'Foo', which is the second generic type. It's not support custom type key for now.