Added option for multiple "modes" in config

It's now possible to add:

mode: "some string"

to the config

where the "mode" represents a dict of values. These values will be
added into the "site" variable and overwrite any existing values. e.g.

```yaml
mode: dev

dev:
  url: http://my-dev-url.com

url: http://my-live-url.com
```

using the {{ site.url }} will yield the value from the dev dict.

If no mode or an invalid mode is detected, defaults will be used.