Date improvements

Added PKDate class to represent dates without a time. There are two basic principles:

* If the date contains a time component, it acts as a normal NSDate
* If the date does NOT contain a time component, its date represents the day component in UTC time
Looked into it and since NSDate is a class cluster, so it has no concrete superclass and therefore no concept of "time". The specific time behavior is implemented in the private subclasses, e.g. `__NSDate`. Therefore I will need the internal date.