- Electron version: 1.2.5
- Operating system: Mac OS X 10.11.6

I am using `session.enableNetworkEmulation` to rate limit upload speed for an uploader app, and noticed that if I only pass the `uploadThroughput` key in the options object, network IO hangs (not sure if it's just down or both ways). I checked out the [code](https://github.com/electron/electron/blob/master/atom/browser/api/atom_api_session.cc#L416-L437) and it looks like it is just expecting all three keys to have defined values. That's fine, but it seems like there could be default values, or at least it should error harder?

Anyone running into this can just make sure to set whatever settings they want unchanged to `0` to get the desired behavior, but this seems like something we can easily guard against, no?

atom/browser/api/atom_api_session.cc
v8::Local<v8::FunctionTemplate> prototype) {
  prototype->SetClassName(mate::StringToV8(isolate, "Session"));
  mate::ObjectTemplateBuilder(isolate, prototype->PrototypeTemplate())
      .MakeDestroyable()
      .SetMethod("resolveProxy", &Session::ResolveProxy)
      .SetMethod("getCacheSize", &Session::DoCacheAction<CacheAction::STATS>)
      .SetMethod("clearCache", &Session::DoCacheAction<CacheAction::CLEAR>)
      .SetMethod("clearStorageData", &Session::ClearStorageData)
      .SetMethod("flushStorageData", &Session::FlushStorageData)
      .SetMethod("setProxy", &Session::SetProxy)
      .SetMethod("setDownloadPath", &Session::SetDownloadPath)
      .SetMethod("enableNetworkEmulation", &Session::EnableNetworkEmulation)
      .SetMethod("disableNetworkEmulation", &Session::DisableNetworkEmulation)
      .SetMethod("setCertificateVerifyProc", &Session::SetCertVerifyProc)
      .SetMethod("setPermissionRequestHandler",
                 &Session::SetPermissionRequestHandler)
      .SetMethod("clearHostResolverCache", &Session::ClearHostResolverCache)
      .SetMethod("allowNTLMCredentialsForDomains",
                 &Session::AllowNTLMCredentialsForDomains)
      .SetMethod("setUserAgent", &Session::SetUserAgent)
      .SetMethod("getUserAgent", &Session::GetUserAgent)
      .SetProperty("cookies", &Session::Cookies)
      .SetProperty("protocol", &Session::Protocol)
      .SetProperty("webRequest", &Session::WebRequest);
}
}  
}  
namespace {
using atom::api::Session;
v8::Local<v8::Value> FromPartition(