Replace ServeFile with ServeContent to use previously opened file

The previous security fix was just about right but didn't work for one small corner case, that is if you have a file in the public directory with the same name as a file anywhere else on the system, someone can request the file in another location and retrieve it. 

To fix this I replace ServeFile with ServeContent, this also will not open the file twice to serve it.