Create AbstractSource to organize for #489. Add stdin source for #504.
Add TestSource to fix tests for #504. Rename AbstractSource -> AbstractSource.scala.