Complex Step capability

1. User can now differentiate models with the Complex Step method by setting fd_form to "complex_step"

2. The Float trait now has support for bypassing the type validation when complex stepping.

3. The Array trait already supported complex step, but some cleanup was done.