SSP-1002 Force Hibernate-persistent timestamps to UTC

This is a cherry-pick of 2f342d0f48e22ee697d46154618a748aeba750e4.
No code changes, but cleaned up the commit message.
SSP-1040 Consistent timezone handling for birth dates.

Front- and back-ends can use different timezone, but for a given
layer the timezone handling needs to be consistent for a given
date value (i.e. a date value without a time component). We're
now at least doing this for birth dates, which exhibited the
first concrete bug caused by inconsistent timezone handling.

Quite a bit went into this fix. The General approach for both
date-only and date+time values is written up in some detail at
https://wiki.jasig.org/display/SSP/SSP+Technical+Design%3A+Dates+and+Times

Note that this does include a narrowing operation on person.birth_date
and external_person.birth_date. Docs will need updating.

This is a squashed cherry-pick of three other commits (as well as
the usual aggr/min js fix-up):

0d7618a65f520948c7450f4d462e7c84357ea480 --
The conflicts in the master changelogs were uninteresting - we're
just skipping a bunch of upstream changesets that aren't relevant
to our 1.2 code line. What was more interesting were the mods to
i000017.xml. We had to change the v_external_person drop and add
changesets there b/c the upstream version referred to columns that
aren't present in 1.2. See more notes in the file.

Conflicts:
	src/main/resources/org/jasig/ssp/database/masterChangeLog.xml
	src/test/resources/org/jasig/ssp/database/masterChangeLog-test.xml

0f77af49a6426649b7cdcc853a4cd9ca78a878f3 --
This just added the 000031.xml changeset that should have been in
0d7618a

e386c705dba2285fb153c07586a318f10c3131d5 --
Overrides default Liquibase SQLServer type mappings. The
previous two commits really shouldn't have been expected to work
properly in MSSQL without this. Original notes from that commit:

...snip...
The default mapping was from 'date' to 'smalldatetime'. This doesn't
work when Hibernate maps such fields to/from a java.sql.Date. Plus
we don't really want any time component in these db fields. So for
2008 and greater we change the mapping to target the 'date'
physical type. 2005 and earlier don't have a 'date' type, so we just
want to use 'datetime' and let Hibernate deal with zeroing out the
time component.
...snip...
SSP-1014 Namespace caseload projection column aliases.

This works around an issue with Hibernate+SqlServer where a
paginated query will break when the order by field references
a column alias rather than an explicit column name. This seems
to only be a problem on MSSQL because the Hibernate dialect
uses an OVER clause to contain the order by and TSQL
disallows alias references in such clauses.