[MRG] Adding tests for estimators implementing `partial_fit` and a few other related fixes / enhancements

Attempting to fix #3896

**New `partial_fit` tests:**
The below tests are based off @arjoly's [suggestion](https://github.com/scikit-learn/scikit-learn/issues/3896#issuecomment-64862823).

- [x] 1. General tests
  * Assert that `partial_fit` returns `self` - Thanks @jnothman for [the suggestion.](https://github.com/scikit-learn/scikit-learn/issues/3896#issue-50330161)
- [x] 2. Check that an error is raised if the number of features changes from one partial fit to another.
- [x] 3. Estimator reset test
  * Check that doing `fit` after a set of `fit` / `partial_fit` restarts the estimator
  * Assert that `partial_fit` and then `fit` with a different number of features works without raising any Exceptions... - Thanks @amueller for [the suggestion](https://github.com/scikit-learn/scikit-learn/pull/3907#issuecomment-68411916)
- [x] 4. Check that classifier handles correctly the classes argument in the `partial_fit`.
  * a. Check if mismatch between `classes` argument and `np.unique(y_i)` for a particular pfit call raises `ValueError`.
  * b. Check that error is raised if `classes` is not specified during first `partial_fit` call.

- [x] Fix modules which do not pass the above tests.

**NOTE**

* `HashingVectorizer`'s `partial_fit` does nothing hence is skipped from tests...
* `MiniBatchDictionaryLearning` and `LSHForest` do not generallize well like other pfit capable estimators and hence `partial_fit` testing for the same should be done under its own dedicated tests.
* `MiniBatchKMeans` does not reset when fit after a `partial_fit` or `fit`. Hence is skipped for that test alone. - `FIXME` added to near the code that skips `MiniBatchKMeans` which should be included again once it is fixed.

Please use `assert_raises_regexp`.