Remove inconsistent usage of macros that broke Thread.sleep/wait on host

Code for managing Thread.sleep/wait used both !defined(__APPLE__) and
HAVE_POSIX_CLOCKS interchangeably to mean the same thing. That worked when
one or other was set but failed on host because neither were set and could also
fail if they were both set. This changed to use HAVE_POSIX_CLOCKS consistently.

The code that used this was spread across 4 separate files with quite a lot of
duplication so that has been replaced with a new method
dvmInitCondForTimedWait in Sync.cpp.

A few extra comments were added to make some things that were a bit confusing
clearer, hopefully.

Change-Id: I7660c931f0cafcd0563afd1165de2aa615040602
Bug: https://code.google.com/p/android/issues/detail?id=68402
Merge "Remove inconsistent usage of macros that broke Thread.sleep/wait on host"
auto-merger: merge in from aosp/master