Draft publish refined

1. When creating a draft, `new_post_name` setting won't be applied.
2. When publishing a draft, you can select which layout to use.

  ``` bash
  $ hexo publish [layout] <filename>
  ```

3. A new API `post.publish` is added.

Ref #677