store JFlex-generated sources in standard sbt location

for a long time we've been getting away with having them mixed in
with the rest of our sources, but I'm finding that with sbt 0.13
and Scala 2.11 I get problems with sbt seeing imaginary multiple
copies of the same files and reporting compile errors as a result.

it's probably better to follow the standard sbt structure anyway,
so I'm going ahead and comitting this on the headless branch even
though we don't have either sbt 0.13 or Scala 2.11 there yet.
minor cleanup in test/headless.lang
use '/usr/bin/env scala' to start our auxiliary scala scripts

it's gotten annoying to maintain the 'bin/scala' script in the NetLogo
repo, so let's just stop. the original ideas behind that script were:
1) nobody had to install scala at the system level in order to do
   anything
2) the scripts always got the right version of Scala

now that we're using sbt not make to build, point 1 is already mostly
taken care of. so it no longer seems worth it to me to maintain the
'bin/scala' thing if it's only used by scripts that aren't essential
to the build.

as for point 2, changes in Scala have settled down a lot, so I'm
not especially worried that little-used scripts might break from
time to time. it seems like a bridge easily crossed when we come
to it.

a few other scripts, bin/profiles.scala, and bin/benches.scala,
are more complicated because they need NetLogo on the classpath.
I will handle them in separate commits.
latest from models repo
make bin/shell.sh use sbt to launch

I hadn't done it this way before because of JLine issues, but
I found a way to eliminate those.

the old way was hard to maintain because it had version number
and classpath stuff hardcoded into it, and it required `sbt package`
to be manually run first, which was easy to forget to do, and then
it either wouldn't work or you'd be running out of date code

the downside of going through sbt is increased startup time, but
oh well.
redo bin/{profiles,benches}.scala to run through sbt

sparing us manual classpath maintenance
get rid of bin/scala which is no longer used

the new way is to do everything through sbt
remove some unnecessary code in sbt build

it dawned on me that when we depend on "fullClasspath in Compile",
that triggers compilation, so an explicit additional dependency on
"compile in Compile" isn't necessary
upgrade ScalaTest to match what scala-2.11 branch has

we might as well, since it will help reduce merge conflicts between
that branch and this one (headless).

cherry-picked from 2.11 branch:
(cherry picked from commit 0b5d54dfe1720356b661a1f7afba607a62e75991)
(cherry picked from commit 4391792cff94c9ed8a1ffe174357c6cd447a16b2)
retrieveManaged/lib_managed no longer needed

now that our auxiliary scripts like benches.scala and profiles.scala
run through sbt instead of doing their own classpath-building, we
don't need to copy our managed jars into lib_managed anymore, we can
just go with the default sbt 0.10+ behavior of leaving them in
~/.ivy2/cache
fix up incorrectly rejiggered link-length prim

happened to notice this while doing something else. nbd, but the
bytecode generator can do a better job when this is right
bytecode generator: beef up MethodSelectorTests a little
give all report/report_* methods explicit return types

the main impetus for this was that in Scala 2.11, if you override
an AnyRef-returning method the compiler will no longer infer a more
specific return type if it can. the more specific return types are
valuable because the bytecode generator can use them.

committing this even for use with 2.10 because it seems like a
code improvement, actually; better not to rely on type inference
for something so crucial as the return types of these methods.

the benchmark dumps change a little, for the better, because some
int-to-double conversions are now happening before bytecode generation
fix bad dependency in test
fix bad dependency in test, the right way this time
rename a test to follow naming convention
beef up MockSuiteTests

I thought I had spotted a bug, but it seems I was wrong.  good to have
the additional tests, regardless.
have Travis notify #netlogo on IRC
redo headless.lang tests to use fixture.FunSuite

instead of gross mutable stuff

the added "fixture =>" and "implicit fixture =>" stuff is kind of
noisy, but better than resorting to mutability IMO.

off in headless.model, Josh Cough chose to stash the fixture
in a DynamicVariable to avoid the extra noise. it's something
we could consider.

also rename stuff in headless.lang (sorry part of same commit; I got
all tangled up in git)
tighten up nightly.sh

`all` and `extensions` are about the same now, so no need to do
`extensions` separately anymore. also renumber the phases now
that headless is its own line of development and rapidly drifting
out of sync with 5.0.x and master anyway