Perceptron now saves optimal weights and has a max number of itterations. Fixed bugs.