[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.
I think its fine to throw. We shouldn't be supplementing host features. But I want to verify we are matching mvc behavior 1:1 with the signature and not sure why we don't pass a cancellation token. We can build an alternate feature on the request if need be and let the user plug it in.