Merge branch 'dev'
Should listen to localhost only by default

Can listen to all IP addresses by setting config or passing argument,
thus we should give the minimal authority by default.
Correct the IP address displayed by server

Server shows wrong IP address it listens to before. It shows 0.0.0.0
while it is listening to localhost and vice versa. Also, we don't need
another var only for displaying, just getting the var what server really
got is enough.
Merge pull request #754 from changyuheng/pr-localhost-by-default

Should listen to localhost only by default
Change the built-in server ip config to localhost

This is an additional patch for #754.
Merge pull request #755 from changyuheng/pr-correctness-bind-ip

Correct the IP address displayed by server
Allow theme config to be overridden by site config

If there is a `theme_config` object in the main site config, it is merged into
the theme's config.

Ex:
```yml
\# _config.yml
theme_config:
  bio: "My awesome bio"
```

```yml
\# themes/my-theme/_config.yml
bio: "Some generic bio"
logo: "a-cool-image.png"
```

results in the following theme config
```js
{
  bio: "My awesome bio",
  logo: "a-cool-image.png"
}
```
Merge pull request #757 from jaredly/master

Allow theme config to be overridden by site config
Merge pull request #758 from changyuheng/pr-built-in-listen-ip

Change the built-in server ip config to localhost
Merge branch 'master' into dev
Update init script of test
post.create: fix event and callback can't be called at same time
Update dependencies
Fix scaffold.set and scaffold.remove
Add test for post.create
Add test for router
Fix post.publish doesn't take slug and layout parameter. Fix #749
Merge branch 'feature/test' into dev
Fix config.logger_format is not defined. Fix #746
Strip the last slash of config.url and append a slash to config.root