a7340eed

By: Michael Lynch <git@mtlynch.io>

Make NewUploadPath own temp-file creation

NewUploadPath took an already-built path string, but its only caller
always passed os.CreateTemp's own output, so its empty/"/" checks
guarded against a state that could never occur. That validation only
existed to make the zero value double as a "not yet set" sentinel in
parseVideoUploadPostRequest, which repeatedly checked
tmpPath.String() != "" instead of the type representing optionality
itself.

NewUploadPath now takes an io.Reader and performs the
CreateTemp/Copy/Close sequence itself (absorbing handlers.copyToTempFile),
so a successfully constructed UploadPath is real proof a fully-written
temp file exists. parseVideoUploadPostRequest now tracks "not yet set"
with a *UploadPath instead of an empty-string convention.