Performance Improvements 3

1. Added NSGA benchmark (requires pyopt)

2. Small speedup to dep_graph:get_sources to prevent it from looping over lots of unnecessary variables

3. Small speedup in finite_difference:get_input for parameter-groups