date.lua
Classes and functions defined:
- Date class - Date class is meant to encapsulate logic around months, years, days, hours. It should be able to do adjustments with regards to days in given month and so on. Date objects should be immutable and that is why date adjustments return new objects instead of modifying the current one.