Clean up optimization interface and add nlopt solver

The previous optimization solver of DART was dependent on a commercial optimization package, SNOPT. SNOPT is well-known and well-made package but open source project, DART, should provide alternative options that use open source optimization packages.

Considerable open source optimization packages are [`nlopt`](http://ab-initio.mit.edu/wiki/index.php/NLopt) and [`ipopt`](https://projects.coin-or.org/Ipopt). Both packages are delivered by Ubuntu except for `nlopt` in Ubuntu 12.04. ([`nlopt` packages](http://packages.ubuntu.com/search?suite=all&section=all&arch=any&keywords=nlopt&searchon=names), [`ipopt` packages](http://packages.ubuntu.com/search?suite=all&section=all&arch=any&keywords=ipopt&searchon=names)) 

This pull request adds only nlopt solver, and ipopt solver will be added by separate pull request later.