Add option parameter to slugify Liquid filter

Add `option` parameter to `slugify` Liquid filter. The default option is `default`.

SLUGIFY STYLE       | DESCRIPTION                
--------------------|----------------------------
`none`              | Do nothing.
`raw`               | Convert to lowercase, and replace every sequence of **spaces** with a hyphen.
`default`           | Convert to lowercase, and replace every sequence of **spaces and non-alphanumeric characters** with a hyphen.
`pretty`            | Convert to lowercase, and replace every sequence of **spaces and non-alphanumeric characters (except for `._~!$&'()+,;=@`)** with a hyphen.
otherwise           | Convert to lowercase, and replace characters matching the regular expression with a hyphen.

Examples:

```
{{ "The _config.yml file?" | slugify }}
#=> the-config-yml-file

{{ "The _config.yml file?" | slugify:'none' }}
#=> The _config.yml file?

{{ "The _config.yml file?" | slugify:'raw' }}
#=> the-_config.yml-file?

{{ "The _config.yml file?" | slugify:'default' }}
#=> the-config-yml-file

{{ "The _config.yml file?" | slugify:'pretty' }}
#=> the-_config.yml-file

{{ "The _config.yml file?" | slugify:'[^a-zA-Z0-9_]+' }}
#=> the-_config-yml-file
```

This is valid path. When `pretty` mode is specified, `._~!$&'()+,;=@` is not replaced with a hyphen.

1.  Replace to hyphen: ` Q*bert says @!#?@!` → `-Q-bert-says-@!-@!`
2.  Remove leading/trailing hyphen: `-Q-bert-says-@!-@!` → `Q-bert-says-@!-@!`
3. Downcase: `Q-bert-says-@!-@!`→`q-bert-says-@!-@!`