- 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
const net::CanonicalCookie& cookie) {
  std::string str;
  bool b;
  if (filter->GetString("name", &str) && str != cookie.Name())
    return false;
  if (filter->GetString("path", &str) && str != cookie.Path())
    return false;
  if (filter->GetString("domain", &str) && !MatchesDomain(str, cookie.Domain()))
    return false;
  if (filter->GetBoolean("secure", &b) && b != cookie.IsSecure())
    return false;
  if (filter->GetBoolean("session", &b) && b != !cookie.IsPersistent())
    return false;
  return true;
}
inline net::CookieStore* GetCookieStore(
    scoped_refptr<net::URLRequestContextGetter> getter) {
  return getter->GetURLRequestContext()->cookie_store();
}
void RunCallbackInUI(const base::Closure& callback) {
  BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback);
}
void FilterCookies(scoped_ptr<base::DictionaryValue> filter,