L-BFGS-B Implementation

Very rough at the moment. Uploaded for potential comments/suggestions.

********* PEOPLE *************
Primary reviewer: @sc932 

Reviewers: @suntzu86 

********* DESCRIPTION **************
Branch Name: denizokt_228_implement_LBFGSB
Ticket(s)/Issue(s): Closes #228 

********* TESTING DONE *************
make test
I would increase the size of the domain then so that the optimum is not on the boundary. This test wants to check that we can optimize qEI. The easiest setting to check that in is unconstrained optimization.

If you're worried about the constrained case, I would at most add a test to the tests for optimization.py that tests optimizing a polynomial on a domain so that you can again compute the optima precisely (project true opt to nearest point on the domain)