SI-6863 Fix verify error in captured var inited from expr with try/catch

If a captured var was inited from a try/catch we did something
reasonable. But if the var was inited from a more complicated expression
(if/else, a block, match/case, etc) that ended with
a try/catch then we didn't and we were generating faulty byte code.
This fix patches LambdaLift to add the missing cases.

For known simple expressions, the translation is just new *Ref(expr).

For try/catch, if/else, match/case, and blocks this recursively
walks down the internal result expressions to translate them. E.g.
if(cond) trueExpr else falseExpr becomes if(cone) translate(trueExpr)
else translate(falseExpr)

For unknown expression types, the translation is {val temp = expr; new
  *Ref(expr) }
SI-4602 Make fsc absolutize source file names

The fsc server was using a path supplied by the client to turn things
like class path values into absolute paths. But it wasn't absolutizing
the source file names supplied to the compiler which lead to SI-4602.
This commit adds that absolutizing bit and cleans the logic up a bit
so that the settings object isn't told a path that it already knows.

A test is included that simulates changing directory by forcing two
different -current-dir settings on two different compile sessions on
the same server process.
SI-4733 - fsc no longer creates a single temp directory for all users.

fsc previously created a single temporary directory called
"scala-devel". This is an issue, since the directory belongs to whoever
created the directory. Depending on the user's umask, this directory may
only be writable for the creator. This causes problems for any other
users who then try to use fsc or invoke fsc indirectly.

Other programs usually solve this issue by creating a separate directory
for each user, either by appending the username to a base directory name
or creating a new direcotory with a random name with a program like
"mktemp". This commit changes CompileSocket to use the first method.

Fixes SI-4733
backport to 2.10.x
SI-4602 Disable unreliable test of fsc path absolutization

The included test for fsc path absolutization almost certainly has
the same reliability problem as a similar test that was disabled in
https://github.com/scala/scala/pull/1985 . Disabling the test until
I can figure out a reliable way to test fsc in an our continuous
integration environment.
Merge pull request #1927 from JamesIry/SI-6863_2.10.x

SI-6863 Fix verify error in captured var inited from block w try/catch
Merge pull request #1988 from melloc/fsc-temporary-directory-2.10.x

SI-4733 - fsc no longer creates a single temp directory for all users.
Merge pull request #1973 from JamesIry/SI-4602_2.10.x

SI-4602 Make fsc absolutize source file names
SI-5070 approximate implicit dependent method types better