Setup
A bunch of new functions

Most of these are natively available in R, but I wanted to re-implement
them myself, just to go through the algorithms. I implemented naive
versions of the algorithms, these are far from being optimized. But
then, anyone who wishes to play/experiment with these algorithms may do
so.
Just a test