And in the process - fix a bug with + and & in file name - fix NewObject returning directories as files
When we drop support for go1.12 we can use http.NewRequestWithContext