[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.
It's a few lines below
```
if (!Path.IsPathRooted(fileName))
{
    var message = Resources.FormatFileResult_InvalidPathType_RelativeOrVirtualPath(fileName);
    throw new ArgumentException(message, "fileName");
}
```