Small improvements to external functions code.
Remove some limitations of steady state model:

- allow recursive definitions (Closes #554)
- allow a variable to be defined twice, simply emit a warning (Ref #556)
Add a warning if some endogenous is not present in steady_state_model block.

Closes #556