Allow empty object for period, add toICALString method for duration

For my use case I do something like this:

```javascript
var f = new ICAL.Period();
...
f.start = somestart;
f.end = someend;
```
This patch allows creating an empty ICAL.Period object. It also adds a getter for the End date thats independent of if duration or end was passed.