+new optimization function
+test functions for the optmization system

TODO:
* Make the optimization function return a list of optmization results;
* Override the base optim with a new one;
* Mass testing (perhaps using require(testhat)?);
* Properly document everything;
* Generate .Rd files;
* Test with real data.