Fix for https://github.com/sbt/sbt/issues/1648 - warn about multiple or no main classes

Works, but doesn't look like the best way to handle that.

My PR would benefit from some hints on how to handle logging in sbt itself.
warnAboutNoMainClass is only used as an argument to 'orElse' when sbt.SelectMainClass(None, classes) yields None. That's why it returns None, as a "pure side-effect" ;-) function.

returning classes.headOption would change the way sbt resolves main class for ambiguous results. 

alternative way of expressing that would be to rewrite warnAboutNoMainClass as:
```
private def pickMainClassOrWarn(classes: Seq[String], logger: Logger): Option[String] = {
    classes match {
      case Nil                           => logger.warn("No main class detected")
      case multiple if multiple.size > 1 => logger.warn("Multiple main classes detected.  Run 'show discoveredMainClasses' to see the list")
    }
    sbt.SelectMainClass(None, classes)
  }
```
and use it directly ```mainClass := pickMainClassOrWarn(discoveredMainClasses.value, streams.value.log)```