Don't override empty-paren methods as paren-less.

An exception is made for toString.
Be explicit about empty param list calls.

With the exception of toString and the odd JavaBean getter.
Banish needless semicolons.
Reorder to avoid code appearing like a forward reference.

It isn't, because LOOP_HEADER and friends are compile time
constants. But I'd argue that its clearer not to rely on that here.
More explicit empty paren lists in method calls.
Fix two malformed format strings.
Remove redundant 'val' from case class params.
Don't wrap an array just to get its length.

Use .length directly, avoiding the allocation of the WrappedArray.
Remove redundant explicit returns.
Modernize legacy backquotes in comments.

Was: ``blah''
Now: `blah`
Address some Scaladocrot

 - @param tags whose name drifted from the corresponding parameter
 - Remove or complete a few stray stub comments (@param foo ...)
 - Use @tparam where appropriate.
Merge pull request #2165 from retronym/topic/empty-paren

Spring cleaning
SI-7006 Improve jump-elision code in GenASM

While working on SI-7006 I found a O(N*M) loop in jump-elision that
should be O(N). This commit clean that up. It also improves the
diagnostics in Members#removeBlock.
SI-7006 Recognize more jump only blocks

During ASM code emission we would recognize a block that consisted of
ICode-only artifacts (ENTER_SCOPE, EXIT_SCOPE, and LOAD_EXCEPTION)
followed by a jump. But we weren't using the same logic to recognize
all jump-only blocks. So jump-elision wasn't removing them. And that
in fact was why the ASM code emission had to do its special case.

This commit makes all jump-only block recognition use the same logic:
a jump-only block is one that has 0 or more ICode-only instructions
followed by a JUMP. It does't necessarily have to start with a JUMP.

There's now a debugWarning if the old NOP emitting code is triggered and
test t6102 is enhanced to error if that warning occurs.
SI-7006 Eliminate unreachable blocks

GenASM was doing a bunch of stuff to eliminate unreachable exception
handlers, but it was still leaving behind other unreachable blocks, for
instance a finally block associated with an exception handler that got
removed would still be left lying around. ASM would in turn turn those
into a big pile of NOPs, which just take up space uselessly.

This commit replaces all the logic for eliding exception handlers with
a single unreachable block remover that catches unused exception
handlers and a whole lot more.
SI-7006 Simplify jump-only block destination determination

With proper reachability analysis, the code for finding the final
destination of jump-only blocks was more complicated than needed. This
commit simplifies and speeds up that process using a standard
Tortoise and Hare algorithm on a Map from jump-only blocks to their
immediate destinations.

Test t7006 is increased a bit to make sure we don't get stuck on
infinite loops and to make sure we're deleting all but the essential
jump.
SI-7181 Prepare to remove duplicated finally blocks

As a first step towards fixing 7181, this commit improves the
comments and variable names around generating try/catch/finally blocks
in GenICode and adds a test verifying the current functionality of
try/catch/finally blocks
Merge pull request #2158 from JamesIry/master_7006

SI-7006 Eliminate NOPs and unreachable code
relax time constraint in duration-tck.scala (for Windows VMs)
SI-7181 Eliminate unnecessary duplication of finally blocks

The main body of a try and each exception handler were getting a copy of
the finally block for the "normal" flow case (i.e. where they don't
throw an uncaught exception or use "return" to exit early). But that's
not necessary.

With this commit the try body and each exception handler can all jump
to the same copy of the finally block on a normal exit.

A byte code test is included to ensure we're getting fewer copies of
the finally block.

inline-ex-handlers.check is updated because the icode is a bit different
without the extra finally block copies.