* Electron version: 1.6.1
* Operating system: All

### Expected behavior

It should be possible, when using net.request, to set redirection options. The `ClientRequest` constructor options should contain a "redirect" attribute, with possible values "follow", "error" or "manual" (like window.fetch), and defaulting to "follow".

Also, when a redirection did happen, it should be possible to know it did, and at least get the URL to which we were redirect (for example as an attribute of IncomingMessage).

### Actual behavior

It is not possible to stop redirections from happening, or even to know that it happened and get the new URL.

### How to reproduce

Use net.request on any URL that does a redirect.

atom/browser/api/atom_api_url_request.cc
state_ =
      static_cast<Flags>(static_cast<int>(state_) | static_cast<int>(flag));
}
template <typename Flags>
bool URLRequest::StateBase<Flags>::operator==(Flags flag) const {
  return state_ == flag;
}
template <typename Flags>
bool URLRequest::StateBase<Flags>::IsFlagSet(Flags flag) const {
  return static_cast<int>(state_) & static_cast<int>(flag);
}
URLRequest::RequestState::RequestState()
    : StateBase(RequestStateFlags::kNotStarted) {}
bool URLRequest::RequestState::NotStarted() const {
  return *this == RequestStateFlags::kNotStarted;
}
bool URLRequest::RequestState::Started() const {
  return IsFlagSet(RequestStateFlags::kStarted);
}
bool URLRequest::RequestState::Finished() const {
  return IsFlagSet(RequestStateFlags::kFinished);
}
bool URLRequest::RequestState::Canceled() const {
  return IsFlagSet(RequestStateFlags::kCanceled);
}
bool URLRequest::RequestState::Failed() const {
  return IsFlagSet(RequestStateFlags::kFailed);
}
bool URLRequest::RequestState::Closed() const {