Raise exception when pillar data is non-dict

This adds some checks to the pillar data passed into the functions in
the state execution module, which raise a SaltInvocationError when the
pillar data is not a dictionary.

It also adds the ability to pass pillar data to state.top and
state.single, as this functionality was missing before.
Raise exception when pillar data is non-dict

This does the same thing as was done for state execution modules, to the
state.sls runner.
Merge pull request #11465 from terminalmage/check-pillar-data-type

Raise exception when pillar data is non-dict