Add an easier to extent delimited source (TypedText)

The intent here is to have macros that allow something like:

```scala
import ReadPathSelector._

TextSource[((Int, String), Long)](datePath("/logs/%Y/%H/")): TypedSource[((Int, String), Long)]

case class Job(title: String, salary: Long)
case class MyRecord(name: String, age: Int, job: Option[Job])

TextSource[MyRecord]("/some/path/"): TypedSource[MyRecord]
```
To do this, we need to be able to pass the types to cascading without a manifest required by TypedDelimited.

This is also be a design example of how sources could be cleaned up a bit.