Added L-BFGS-B code from Nocedal et al.

* Only includes necessary code, not their full distribution.
* License is reconstructed based on the visible intentions of the
  authors and available information.  (L-BFGS-B distribution only
  includes template for BSD 3-Clause License.)
Added description of project contents.
Fix links to L-BFGS-B license locations in README.
Clarify comment on recent L-BFGS-B changes.
Added code for L-BFGS-B C interface module.

* Added C header and Fortran source.
* Implemented most of the functionality but some code is still missing
  in 'lbfgsb_minimize'.
* Compiler currently treats 'setulb' as external.  Will have to
  investigate.
Added L-BFGS-B module as interface to FORTRAN 77 code.

* Module currently only provides an interface and does not explicitly
  connect with the FORTRAN 77 code (so compiler cannot check everything,
  etc.).
* Updated C interface module to use new L-BFGS-B module.
Created makefile to build L-BFGS-B library.

* Added ignoring of generated files.
Implemented remaining L-BFGS-B C interface module.
Removed unnecessary conversions from C types.
Added facility for returning error messages.