condegen: Return features as symbols, not strings

R7RS wants feature identifiers returned as a list of symbols. This also
works in a well defined way with eqv?, memq, etc.
frontend: Make #!unit self-evaluating

This will be used to make (when) and (unless) always return #!unit.
stdlib: Add (unless), unit test for (when)

This uses the macro in R7RS but tweaks it and the (when) macro to always
return #!unit. R7RS says their result is unspecified but the included
macro will return the value of the expression if it's evaluated. Always
returning #!unit is consistent with how Llambda handles unspecified
values elsewhere.
runtime: Slim RangeAlloc iterator on release build

Release builds never use the mStartPointer/mEndPointer members. Remove
them completely on release builds so RangeAlloc::Iterator collapses down
to a single pointer.
codegen: Mark non-world functions as nounwind

The compiler assumes that only functions taking a world pointer can
throw exceptions. This includes not generating a GC safe point for
non-world function calls. Communicate this restriction to LLVM with
"nounwind" to allow it optimize further.
runtime: Fast path for string and symbol ==

Check if the constUtf8Data() pointer is the same for both cells before
performing memcmp(). This means the cells are either the same cell or
implicitly sharing data.

This isn't likely to be true very often but the size check would reject
most inequalities early and we already need to calculate the pointer to
to the UTF-8 data. This means the test is effectively free assuming
we're cache miss limited here.
Upgrade to ScalaTest 2.1.3

This has no fixes that affect us. However, older versions aren't being
built against Scala 2.11 so it will ease our transition once 2.11 is
released.
compiler: Switch to upstream jline

Previously Scala's jline fork was the only version that worked correctly
from within sbt. However, upstream jline now works as expected and Scala
itself has switched to upstream for 2.11. Change over to better prepare
for 2.11.