Improvements for `chef prepare`:
- `Chef` now has a custom `Environment`. This required a few changes in how
  environments are created and initialized.
- Added concept of "command extension", which is pretty much a sub-command.
- The different types of preparations are in their own command extension.
- Added a `prepare feed` command extension to create RSS/Atom feeds.

Miscellaneous:
- Renamed the `xmldate` filter to `atomdate`.
- Added a `pcfail` function to fail the bake or rendering on purpose.
Updated CHANGELOG.
Added reminder to `prepare feed` to add a link to the main page.
Trailing slash support changes:
- Changed `baker/trailing_slash` to `site/trailing_slash` (but the old setting
  is still supported).
- Trailing slashes are also supported in `chef serve`.
Don't crash chef if it's run outside of a website.

--HG--
extra : rebase_source : 5da0841b5651e27c54b7fcafb9bc838f448ebfae
Fixed an argument bug with the `chef prepare` command extensions.

--HG--
extra : rebase_source : f055acf93d362dae80fb8a1ea87ec7df1d6d7cd6
Only show commands that are valid when inside/outside a website.

--HG--
extra : rebase_source : 618e0539f9e2aa21d3e83316426e8a1cf05584c7
Encode pages in UTF-8 before doing any parsing and JSON encoding.
Support giving a custom hostname for the benchmarks.