Improve behaviour of the salt.state state function

This improves the behaviour of the salt.state state function in three ways:
* Doesn't always report failure
* Formats the output of subordinate highstate/state.sls runs using the highstate format.
* Trims the contents of the changes dict to only include the output from minions where actual changes took place. This allows it to be used sensibly to trigger other states through watch.