fix uninitialized value warning in compile.cpp

Clang was complaining that newIp might be used uninitialized at the
bottom of our giant, unstructured compile loop, so I initialized it
with a bogus value, which means it will at least fail consistently if
Clang is right and there really is a path by which that code is
reached without otherwise initializing newIp.
remove obsolete idle statement from Unsafe.getLongVolatile

Now that Josh has fixed the busy block bug (see commit 10d15d2), we
don't need this anymore.
implement Unsafe.putOrderedLong and putVolatileLong

The former just defers to the latter for now, since it provides
strictly weaker guarantees.  Thus it's correct to use full
volatile-style barriers, though not as efficient as it could be on
some architectures.
move Unsafe.putObjectVolatile and putOrderedObject implementations

This makes them available to all class libraries, not just OpenJDK.
Merge pull request #145 from dicej/putOrderedLong

implement Unsafe.putOrderedLong and putVolatileLong, plus a build fix and cleanup