Merge pull request #26 from mfairchild365/issue-25

Move to 4.0 framework
Merge pull request #27 from mfairchild365/issue-25

make 4.0 useable
Fix the js ajax nav for days
We need an updatecontent id for the day ajax to work
Add methods to get relative days
Allow custom templates for the hcalendar format

There are some differences between the hcalendar format and the html format.  While they are very similar, the hcalendar format is concerned with serving only calendar info about the context, while the html format adds in widgets and extra information.
Do not render the month widget in the hcalendar output
More accurately compare months

If you compare the month without the year, next and previous will not be determined correctly in the months of 1 and 12.  The year also needs to be taken into account.
Merge pull request #29 from mfairchild365/issue-9

Make widget js functional on the Today's Events page
Don't use NOW()... tisk tisk
Make the datePeriod object accessible
Speed up the month widget

Instead of 35 queries (1 for each rendered day), only use 1 query.
Add methods to get URLs without creating objects

This reduces the amount of memory and queries used.
Only use one insert query
Add a method to get the year's URL
Allow generating URLs for a year
Rather than creating objects to get URLs, just generate the URLs
Add type hints for generateURL methods
Add documentation
Change name of method to be more descriptive