Haxe3 syntax changes

Including:
 * missing semi-colons on inline functions
 * typedef before imports and using are finished
 * :Array<Dynamic> needing to be explicitly defined.
 * and probably a few others
Get rid of optional second argument

(I hope that wasn't necessary, it appears to do nothing and was causing
compile time errors)
Added "mondayStart" option to snapToWeekDay.

Also added documentation for each of the functions
monthName() and monthNameShort() were the wrong way around
weekDayName() and weekDayNameShort() were also mixed up
Add more documentation
Made it easier to access FormatDate.* with autocompletion

Rather than use date.format("MNS"), you can now use date.monthNameShort()

To do this, I have moved Dates.format() to Dates.formatOld() (might obsolete it?)
and I have typedef aliased FormatDate into the bottom of the Dates file.

This means all the FormatDate static methods are now available when "using Dates;"
is used.  So you can do

    date.monthName();
    date.universal();
    date.weekDayNameShort();

etc.
Fixed reference to Dates.format(), which I've removed
More changes

Mostly changing scale functions to not have i parameter, which appears to
me to be unused.  If I'm wrong, please forgive me :)

The unit tests now compile, with these results:

assertations: 1755
successes: 1718
errors: 0
failures: 37
warnings: 0
execution time: 0.085

The failures are from SVG TestLine and TestArea (35 Failures) and
2 failures in TestStrings
Add dateYMD() shortcut method for yyyy-mm-dd, no matter which culture
More documentation updates
Add DateTools to the list of things that are included by "using Dates;"
Many small changes to Dates (fix for snapToWeekday(), new helpers)

Dates.snapToWeekDay can now specify if you are snapping forward, backward
or to the current week.  If it's to the current week, you can specify
what the starting day of the week is.

Default mode = snap to current week.
Default start day = Sunday (0)

Everything else is small stuff
 * number of days in months
 * is Leap year?
 * delta day/week/month/year
 * (prev/next)(week/month/year), tomorrow, yesterday
Change tomorrow/yesterday to nextDay/prevDay

Close to the other functions for week/month/year, and makes more sense
on dates that don't represent /today/.
Fix the way these inline methods work

You can't use the "using" syntax, on methods in the same class, silly me
Change reg-ex's to global to pass unit tests

(Previously they were only uppercasing the first match.  I think Haxe 3's
regex engine, or neko 2s, has changed and is more correct)
Changed back to format() not formatOld()

Now format() if it doesn't match one of the shortcut strings, passes
through to FormatDate.format() - there shouldn't be any overlap in
real world usage.
Add comment about failing unit test on neko.

It turns out even this fails:

    d = new Date(2012, 3, 1, 0, 0, 0); // failing day

but seemingly only on this date.  SO weird.  Time for a bug report.
Not an issue on JS/AS3
Fixed a whole bunch of errors after my hash->Map find and replace

And a little bit of general code cleanup too.
Merge branch 'haxe3' of https://github.com/jasononeil/thx into jasononeil-haxe3