Fix #927: Add support for automatic Scala.js cross versioning

When fully cross-building against Scala JVM and Scala.js, your library
dependencies are likely the same, except for the _sjs<v> suffix. With
this commit, you will be able to write:

```
libraryDependencies <++= Seq(
  "org.example" %?% "blah-lib" % "0.2",
  "org.example" %?% "test-lib" % "0.1" % "test"
)
```

and sbt will automatically figure out if the Scala.js suffix is
required (i.e. whether the setting is used in a Scala.js project).
Merge pull request #939 from gzm0/auto-dependency

Fix #927: Add support for automatic Scala.js cross versioning
Fix #940: Additional pattern-match reverse engineering pattern
Merge pull request #941 from gzm0/pattern-match

Fix #940: Additional pattern-match reverse engineering pattern