- Electron version: 0.36.12
- Operating system: OSX

There are two problems with `expirationDate`.
### First Problem

`expirationDate` is not returned on non-session cookies.

``` javascript
// not setting session here so it should default to false
var obj = {
  name: 'foo',
  value: 'bar',
  path: '/',
  expirationDate: 2093792393, // 20 years in the future
  url: 'http://localhost/'
}

var cookies = win.webContents.session.cookies

cookies.set(obj, function(err){
  cookies.get({name: "foo"}), function(err, cookies){
    cookies[0].name === 'foo' // => true
    cookies[0].session === false // => true

    // we're missing the expirationDate property!
    cookies[0].expirationDate === undefined // => true
  })
})
```
### Second Problem

When a cookie is marked as a `session` cookie the `expirationDate` property is returned as `0` but it should not be returned at all.

``` javascript
var obj = {
  name: 'foo',
  value: 'bar',
  path: '/',
  session: true, // marking session as true
  url: 'http://localhost/'
}

var cookies = win.webContents.session.cookies

cookies.set(obj, function(err){
  cookies.get({name: "foo"}), function(err, cookies){
    // per the docs this should not have the
    // expirationDate property but it does
    // https://github.com/electron/electron/blob/master/docs/api/session.md#sescookiesgetfilter-callback
    cookies[0].expirationDate === 0 // => true
  })
})
```

atom/browser/api/atom_api_cookies.cc
RunCallbackInUI(
      base::Bind(callback, success ? Cookies::SUCCESS : Cookies::FAILED));
}
void SetCookieOnIO(scoped_refptr<net::URLRequestContextGetter> getter,
                   scoped_ptr<base::DictionaryValue> details,
                   const Cookies::SetCallback& callback) {
  std::string url, name, value, domain, path;
  bool secure = false;
  bool http_only = false;
  double expiration_date;
  details->GetString("url", &url);
  details->GetString("name", &name);
  details->GetString("value", &value);
  details->GetString("domain", &domain);
  details->GetString("path", &path);
  details->GetBoolean("secure", &secure);
  details->GetBoolean("httpOnly", &http_only);
  base::Time expiration_time;
  if (details->GetDouble("expirationDate", &expiration_date)) {
    expiration_time = (expiration_date == 0) ?
        base::Time::UnixEpoch() :
        base::Time::FromDoubleT(expiration_date);
  }
  GetCookieStore(getter)->GetCookieMonster()->SetCookieWithDetailsAsync(
      GURL(url), name, value, domain, path, expiration_time, secure, http_only,
      false, false, false, net::COOKIE_PRIORITY_DEFAULT,
      base::Bind(OnSetCookie, callback));
}
}  
Cookies::Cookies(v8::Isolate* isolate,