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?
no, explicit as in, don't use kwargs, write out the arguments that are in the docstring.

regarding complexity, how does it grow distance neighbourhoods without doing an all vs all distance computation (n^2)?