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?
This is a nice wrapper! (Though explicitly show the initialisation of the DBSCAN object.)

Q: how scalable is DBSCAN? The fact that it works via a neighbourhood is very nice for our application, but I'm concerned about its ability to handle our full datasets.