ENH sort option for memory-efficient DictVectorizer

Added memory efficient UnsortedDictVectorizer

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. You can now call `fit_transform` on an
iterable, and not have to waste the temporary space.

Sorting is done in-place, so it doesn't waste memory.
MAINT refactor DictVectorizer's transform+fit_transform (1)

Also:

* postpone attribute setting to the end of the fit_transform algorithm,
  so that exceptions leave the transformer in a consistent state;
* call sort_indices on CSR result.

Didn't refactor fit as I couldn't get the code shorter without making
_transform cumbersome to read.
Merge branch 'pr/3683'

Fixes #3683 (squashed and refactored).
FIX error handling/memory deallocation in Liblinear wrapper

Fixes #3675.
TST more robust test for MemoryError from Tree._resize

Fixes #3686.