Improved validation and testing

I added more validation steps and many tests.

It does not support everything in RFC 5545 but that's not the point, it support just enough to get events working well with reminders.
`arguments.callee` refers to the function currently being executed, I haven't made that, it's from @aenario so he might have better insight.