Issues/50 from ical, cleaned up

Cleanup of #226.

Squashed all commits into one, removed non-ical changes, unbroke tests, and committed. Sorry to have lost all the contributors, but it was too unwieldy to rebase. Credits to @skyporter @jgauby @btucker @srpa85.

I hope this helps in getting iCal parsing finally merged.