Doctests and clustering methods

Added a couple of doctests to the simpler functions in preprocessing.py
Added DBSCAN and KMeans clustering to cluster.py

Unsure how to add a test to something non-deterministic like DBSCAN -- maybe apply clustering to the iris dataset with a fixed random-state?
Oh, I see now why you didn't put n_clusters in the function signature. But that makes it pretty messy. Instead, use `n_clusters=None` in the signature, and use "if n_clusters is None: n_clusters = foo".

Can't kwargs be passed explicitly (and in some cases individually) to the MiniBatchKMeans constructor? You have actually missed a bunch of parameters (e.g. max_iter). Might be good to add tests for these!