Big refactor of various page/post iterators:
- Less code duplication, reuse the page iterator in more places.
- Added lots of unit tests.
- Fixed incorrectly ordered monthly archives.
- Fixed confusing behaviour of pagination iterator by locking it against modification.
- Fixed incorrect behaviour when page iterators are used more than one time on a page.
- Fixed a crash when using a `has_xxx` clause on a non-array page setting.
- Made it possible to use post filters in tag/category pages.
Added ability to provide custom date/log formats in StupidHttp.
Fixed missing call to `ftp_close` on error.
Simplified the new website message.
Added a message when nothing is found with `chef find`.
Improving logging, error reporting and error handling:
- Don't include inner exception messages in new exceptions.
- Show exception stack anywhere and exception is displayed.
- `debug` mode should now only be for showing source code (call stacks, etc.)
- `debug` mode gets correctly set in `chef serve`.
- Server now supports configuration variants.
- Simplified code for applying configuration variants.
- Removed useless banner from baker output and CLI.
- Use pretty colors on Mac/Linux for console output when baking or serving.
- Re-added all `chef` commands to the parser, regardless of whether the current
  directory is a website or not. That was pretty stupid actually.
- Global options like `--root` or `--debug` are now really global.
- Added a cache key to help invalidate cached config files when a breaking code
  change is written.
- Modified the system error pages to show updated information about error
  reporting.

--HG--
rename : build/messages/_content/pages/404.html => build/messages/_content/pages/error404.html
Update CHANGELOG.
Changed the way we test for invalid non-UTF-8 encodings.