Address a regression in ValDef positions.

884e1ce76 took a step along the path to sharper positions.
But that step left positions for ValDefs wanting: they no
longer extended to include the `var` or `val` token.

This messed with scala-refactoring, which uses the positions
to locate the smallest enclosing tree around a comment marker
in test source files.

The difficulty in this area of code comes from the desugaring
steps needed for patterns and multiple assignments.

This commit steps in right at the end and stretches the position of
the first ValDef to meet include the start of the token.

Review by the build kitteh, /cc @huitseeker