Removed the loop from the BrowserTimeZoneMap.getUtcTime implementation

The previous loop had the potential to continue forever when the call
timeZoneMap.getUtcTime(1331431117) was made, since the bounds on the
binary search could overshoot the correct UTC time.

The main idea of any solution that doesn't use a loop is to get the UTC
year, month, date, hour, minute, second, and millisecond from an object
created from the number of milliseconds since the UTC epoch, and create
a new Date object with those fields filled in and interpreted as local
time.  The UTC timestamp on that second Date object is the correct UTC
time for a given local time.

The first version of the code uses JavaScript's Date object directly,
which provides all the capabilities required for this solution.  That
code is commented out, however, because testing JSNI code in GWT is a
real pain, and would require messy changes to project files.  The second
version uses Java's Date object, which has a toGMTString method that
produces all this information in a predefined format.  The Java standard
library's documentation defines this format exactly, so we are able to
parse this string with confidence and get the fields we need.  This
solution is messier and slower than the first, but it doesn't introduce
the additional wrinkle into testing, so we stick with that method.