Add ArrayField base class
Add SetField
Now ListField use ArrayField instead ContainerField
Fix BaseDocument.__repr__