Cleaner output for highstate full

Adjusts hightstate full output in a couple of ways.
```
----------
          ID: php55_makeconf
    Function: makeconf.present
        Name: PHP_TARGETS
      Result: None
     Comment: Variable PHP_TARGETS is to be set to "php5-5" in make.conf
     Changes:   
```

Changes:
* The state's ID is now the first line.
* The state module, is instead displayed in the function line.
* If ID and Name differ, both are shown with ID having the stronger position.
* Name is displayed after function to match its relationship in the state definition code.
* Result value wasn't checked for new lines, causing painful layouts with unindented lines and blank lines. Fixed.
* Indent logic is now consistent, aligned on the colon.

In the process of doing this, I've juggled the code in to an list of keyword formatted output lines, a dict to pass to format() and then used a list comprehension to put the two together.  Seems easier to read and maintain in the long run.

Provides the main feature of issue #8909