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.
I'd be surprised if that was faster, because you have to create so many more temporary objects, and in the end we'd need to convert feature_names to a list (in addition to what you have there), because that's what the current API is.