Make Yaml Syntax more Yaml like - With Tests :)

required key/values to be in this format; nginx::gzip: on

That's great for one off variables, but the syntax really starts
to look very noisy when you get a yaml file with 10 modules,
and each modules has 20 lines in looking like;
```
  nginx::sendfile: on
  nginx::worker_connections: 10
  nginx::gzip: on
  nginx::tcp_nopush: on
```
Instead, it's a lot cleaner/clearer and (I think) in keeping with
the spirit of yaml to have something such as;
```
  nginx:
    worker_connections: 10
    sendfile: on
    tcp_nopush: on
    keepalive_timeout: 0
```
This patch and tests accomplish the latter syntax.