[WIP]Adding tests for estimators implementing `partial_fit`

Attempting to fix #3896

**New tests added:**
The below tests are based off @arjoly's and @jnothman's suggestion. 

Ref : [comment](https://github.com/scikit-learn/scikit-learn/issues/3896#issuecomment-64862823) at #3896 

Please feel free to add more tests if required:

- [x] Check that an error is raised if the number of features changes from one partial fit to another.
- [ ] Check that doing fit -> partial fit == partial_fit, partial_fit
- [x] Check that doing fit after a set of `fit` / `partial_fit` restarts the estimator
- [x] Check that classifier handles correctly the classes argument in the `partial_fit`.
* Check that error is raised if no of classes specified initially is lesser than subsequently witnessed during partial fit.
* Check that error is raised if no of classes is not specified during first `partial_fit` call.
- [x] assert that `partial_fit` returns `self` - @jnothman 's suggestion.

**New features / enhancements:**
- [x] Implement `method_filter` to help separate the estimators which implement any specific method(s) [ eg `partial_fit` ]<br/>
* `method_filter` : ( In `sklearn.utils.testing` )
To filter the estimators based on the existence of one or more methods passed as a list of method names.
The default `method_filter` value is `None`. It can also be an empty list.
Even I thought so... but this seems to be the convention followed by other checks... 
Could I change all the others uniformly to `Estimator` too or I'll change this one alone?
Also what does `Alg` mean btw?