Files typed as `[ApolloUploadServer::Upload]` can be strings

Arguments typed as ApolloUploadServer::Upload can be strings. This causes internal server errors when they ought to be argument errors

see: https://sentry.gitlab.net/gitlab/gitlabcom/issues/1698433/?referrer=gitlab_plugin

NoMethodError: undefined method `original_filename' for "file://etc/passwd":String
  design_management/save_designs_service.rb:46:in `block in designs'
    collection.find_or_create_design!(filename: file.original_filename)
  design_management/save_designs_service.rb:34:in `upload_designs!'
    ::DesignManagement::Version.with_lock(project.id, repository) do
  gitlab/metrics/instrumentation.rb:161:in `block in upload_designs!'
    .measure { super }
  gitlab/metrics/method_call.rb:36:in `measure'
    retval = yield
  gitlab/metrics/instrumentation.rb:161:in `upload_designs!'
    .measure { super }
...
(245 additional frame(s) were not displayed)

NoMethodError: undefined method `original_filename' for "file://etc/passwd":String