New changelog parser

This is a new changelog parser written from scratch.  It makes a reasonable attempt to parse common changelog formats, but it doesn't have any way for parsing to fail so it still can't fall back to plain text (ref #941, #948).  It allows unlimited nesting, and preserves order (ref #920, #1319).

It doesn't use CPAN::Changes (aside from stealing a couple of its regexes) because the API it presents is very poor and can't handle the structure I'm generating.

It handles the cases mentioned in many existing tickets:
#1319 (Test::Class::Moose):
![screen shot 2014-09-14 at 7 13 36 am](https://cloud.githubusercontent.com/assets/50029/4263788/39d4517e-3c00-11e4-8270-923823ae457c.png)
#1252 (Dist::Zilla::PluginBundle::Author::ETHER):
![screen shot 2014-09-14 at 7 14 24 am](https://cloud.githubusercontent.com/assets/50029/4263790/4feb2f0a-3c00-11e4-93d3-35f53bcc291e.png)
#1024 (App::Ack):
![screen shot 2014-09-14 at 7 16 01 am](https://cloud.githubusercontent.com/assets/50029/4263792/8cd15b2e-3c00-11e4-8f7c-a104e04bcc26.png)
#948 (autodie):
![screen shot 2014-09-14 at 7 17 13 am](https://cloud.githubusercontent.com/assets/50029/4263802/b83cbfd8-3c00-11e4-8068-7f026839b67e.png)
Any reason not to use some kind of a date parser here?