Single place algorithm and tree addition

implemented code to allow simple addition of new algorithms and classes.
Now to add new classes user must add new class that extends tree or
search algorithm, then add the class name to the appropriate file