Added support for excluded dates, and support for recurring events with no end date

I did this:
- added support for excluded dates (EXDATE) on recurring events
- added support for recurring events that have no end date
- restructured the code so you can make it parse your own lines of code, not just a filename