* min_pool_size would be infinite by default.
* add unittest for min_pool_size
* Fix bug in can_over_batch_size
* add unittest for can_over_batch_size
* Add DEFINE_PROVIDER_EX
* Add default value of should_shuffle
* When training, the default value of should_shuffle is True.
* When testing, the default value of should_shuffle is False.
* User a set a provider should_shuffle or not by pass it to `@provider`
* should_shuffle can handle a list of value, not just boolean
* Add input order mapping by using name
* Add unittest
* Add check to check input format.
* Default is close for speed reason.
* User could stop train when check error, or continue train without
this train sample.
* use deque instead of vector in generators pool, make erase
generator faster.
* Add chinese/english documentation
* Make should shuffle = false in unittest
* Add python files to depends.