Add support for struct with list param shorthand

This was already supported within a list via
`list-structure(list-scalar, scalar)` but not in the non-list form of
`structure(list-scalar, scalar)`. This commit adds support and refactors
the code to reuse as much as possible between the two.
Update changelog
Merge branch 'struct-list-scalar' into develop. Fixes #882.