Fix NavBar & SystemBar sizing issues

PhoneWindowManager makes some decisions regarding
portrait & landscape based on screen sizes.  Since we poke
this routine everytime we change something on the NavBar, this
can result in PWN changing the orientation of the device.  This
was causing strange behavior in resizing of the NavBar & SystemBar.
It might also have been causing other strange orientation issues.

PS2:  Attempts to decode the actual device type based on the screen
   dimensions and the rotation at time of setInitialDisplaySize.
   This is needed because large tablets (that default to a landscape
   orientation, need to have the dimensions swapped)

PS3: Whitespace

ps 4: Restore the stock calculations for orientation, but restrict
    them to running only one time (at initial boot).  This will allow
    the normal detection routines to set up the proper rotation variables,
    but will not reset (and change them incorrectly) everytime we poke
   setInitialDisplaySize.

Signed-off-by: Zaphod <mwilson@acesappraisal.com>
Change-Id: Iaec0e8ba623f10bd0d4118b4d5a99a42ab0564f6
Fix Watchdog HeartbeatHandler to run on correct thread

The HeartbeatHandler for the System Server Watchdog has been running
on the wrong thread due to a race condition in initialization.  It's
designed to run on ServerThread, so that it can catch lockups in the
main looper of the System Server.  It has been running on
ActivityManagerThread instead, so it does not detect lockups on the
ServerThread as it should.

ActivityManagerService is calling Watchdog.getInstance() before
ServerThread calls Watchdog.getInstance().init(), so the handler is
being bound to the ActivityManagerThread instead of the ServerThread.

Explicitly bind HeartbeatHandler to ServerThread, so that the Watchdog
catches lockups on this critical thread.

Change-Id: Iccb184ac3adb817feb86ed4ee0e50e443bf74636