Added Code For Adding New Functions

The code adds more options to the SingleFunction for building new
functions, and has the FunctionBuilder class memorize every new
function. I also enabled the user to choose an index in the function
ArrayList. This allows the user to choose what functions will be learned
from.