Discovering main classes

I added a feature to sbt-pack (for personal needs), and was wondering if you could be interested in it.

I added a `packMainDiscovered` task, that uses sbt's task `discoveredMainClasses` (which basically gives a list of the main classes in the current project) to guess a possible value for `packMain`. It can be used this way to define `packMain`:

    packMain := packMainDiscovered.value

If your project only main classes are `com.myproject.FirstProg` and `com.myproject.OtherProg`, it gives `packMain` the following value:

    Map("first-prog" -> "com.myproject.FirstProg", "other-prog" -> "com.myproject.OtherProg")

(It hyphenizes the names the main classes to get the scripts' names.)

I changed the tests in place to illustrate it (this makes the diff easier to read, although I think the right way to go should be to keep the existing tests as is, copy them, and change the copied tests).

I also had to make `packMain` a task, as I define it using another task (`discoveredMainClasses`). This doesn't seem to break any test.

Let me know if you have any question or remark.
Please use `Seq[String]` or `List[String]` instead of `Stream[String]` because the number of main classes is not so huge. Even if it reaches 1000 classes, there would be no performance problem.