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?
explicity show the initialisation? as in..
```
dbscan_clustered = DBSCAN()
dbscan_clustered.set_params(**params)
```
?

DBSCAN in the original paper is O ( n log n ) complexity, I'm assuming sklearn will use something similar or beter is so let's say that's the worst case average complexity :P So it's pretty scalable.

One caveat with DBSCAN is that your clustering is highly dependent on your choice of eps/min_samples. There's heuristics for choosing a good eps, and I think a good rule of thumb could be made based on how samples and/or genes there are in the dataset.