Build: scope root sources to 'doc' task since they shouldn't be compiled normally.
Allow main class to be non-public.  Fixes #883.
Docs: Add and use custom :key: role that links to the val in sxr/sbt/Keys.scala.