More Powerful Filter API

Currently Filter API only has 2 types: **pre** and **post**. I decided to reference [WordPress Filter](http://codex.wordpress.org/Plugin_API/Filter_Reference) and make the Filter API more powerful.

## Old Filter Types Are Renamed

The old filter types are renamed, which are easier to understand. However, old filter types are still supported.

- **pre** → **before_post_render**
- **post** → **after_post_render**

## API Changes

### Filter.list([type])

If `type` is defined, this method will return an array of filter plugins of the specified type.

### Filter.register([type=after_post_render], fn, [priority=10])

Now you can define the priority of a filter plugin. The `priority` is a positive integer and lower value will execute first. The value is `10` by default.

## New APIs

### Filter.apply(type, [args], [callback])

Runs all filter plugins of a specified type. If `callback` is defined, this method will run in async mode.

### Filter.unregister(type, [fn])

Remove a filter plugin. If `fn` is not defined, all filter plugins of the specified types will be unregistered.

## New Filter Types

Besides two old filter types `before_post_render` and `after_post_render`, I added two new filter types:

- **new_post_path** - Determines file path of a new post ([Example](https://github.com/tommy351/hexo/blob/feature/enhance-filter/lib/plugins/filter/new_post_path.js))
- **post_permalink** - Determines permalink of a post ([Example](https://github.com/tommy351/hexo/blob/feature/enhance-filter/lib/plugins/filter/post_permalink.js))