Initial commit of functions from github.com/btracey/optimize

There are two different levels of success. The first is that the call to minimize finished without error. The second is that Minimize was able to find a local minimum, as opposed to some form of timeout. Hitting the maximum number of function evaluations isn't really an error (the user asked for it), but it signifies that the result returned isn't the minimum the user was hoping for. If the status is positive, the user is probably happy with the result, if negative, he or she may not be.