Revised optimizer and its tests; issue #30

@subutai @scottpurdy please review.
The revisions to optimizer.py are to included bounded optimization.
optimizer_test.py was redone to test against more cases (parameter boundaries, local vs global max) and correct some calculations. I also added detailed failure messages.
Once we change the name of the parameter to 'initialGuess' we don't need another variable here (and elsewhere). Simplest to say initialGuess=42 in the call to optimizer below.