Added support for calendar_dates.txt and shapes.txt

If you can selectively remove the first three commits that are probably not interesting to you, you might be interested in the added support for calendar_dates.txt and shapes.txt commit.