Move and edit variable expressions section

After some thought I decided it would be worthwhile to have
a section dedicated to describing dependency injection since
that's rather central to the simulation framework.
I put it at the end just before the API section.
The content is an edited/expanded version of that first written
by @daradib.