Deal with bounds constrained problems in the Solver.

1. Detect if the problem is bounds constrained.
2. Detect if the problem is infeasible due to
   constant infeasible parameter blocks.
3. Simplify the interface to TrustRegionMinimize and
   LineSearchMinimize. In the process fix a bug related
   to early return and the way user state pointers
   were being dealt with in parameter blocks.

Change-Id: Ie7e70862029d3e0734636882c21ea594516119d1
2 files changed