[Fixes #429] FileResult

1) Implemented FilePathResult to efficiently return files from disk.
2) Implemented FileStreamResult to return content from a stream.
3) Implemented FileContentResult to return content from a byte array.
Maybe pass this in from the base so you 'd have to change it one place when we flow the `CancellationToken` through the system.