Configurable first day of the week

Added support for an optional attribute: first-day.
Some refactoring of the code that fills the dates array.
Updated the tests.
Merge pull request #1 from asharbitz/configure-week-start

Configurable first day of the week
Disable empty rows with a no-extra-rows attribute

If truthy, the calendar will have between 4 and 6 rows, and not always 6 (the default).
Merge pull request #2 from asharbitz/configure-extra-rows

Disable empty rows with a no-extra-rows attribute
Fix README.md mistake
Merge pull request #3 from asharbitz/configure-extra-rows

Fix README.md mistake
fixed timezone bug in tests
test cleanup
Fixed infinite loop bug if first-day > 6

Added tests
changed first-day to week-starts-on
make no-extra-rows a boolean attribute

no-extra-rows="false" will still work as expected (always 6 rows)
rename visibleDates to buildDates
cleaned up the no-extra-rows implementation

no-extra-rows="false" will no longer work (noExtraRows == true)
change buildDate API
refactor buildDayNames