Dataset refactoring
Dataset refactoring

- Prevent users from directly instantiating the Dataset class by
  defining it as abstract
- Enforce implementation of interface methods in inheriting classing by
  using the abstract decorator
- Add a utility function to initialize the iterator
- Deprecate old methods

matrogers/pylearn2,matrogers/pylearn2,matrogers/pylearn2,matrogers/pylearn2