Add a more memory efficient version of DictVectorizer

When loading really large files for SKLL, I found that temporarily storing a list of dictionaries to pass to DictVectorizer was frequently using up huge amounts of memory.  With `UnsortedDictVectorizer`, you can call `fit_transform` with a generator, and not have to waste the temporary space.

This sub-class also overrides `fit` so that the feature names are not sorted in that case either for consistency.

I would have just modified the `DictVectorizer` class to no longer sort the list of feature names, but I didn't want to break anyone's code that somehow relied on that.
`.toarray()` converts to array directly.