Pass credentials as well (needed for the ajax workaround)

```
/usr/lib64/python2.7/contextlib.py:24: in __exit__
    self.gen.next()
utils/update.py:70: in update
    o_updates = updates(o, cp)
utils/update.py:27: in updates
    if not v == o[k]:
utils/update.py:39: in __eq__
    return all_public_fields_equal(self, other)
utils/update.py:16: in all_public_fields_equal
    return public_fields(a) == public_fields(b)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

o = None

    def public_fields(o):
        """
        Returns: a dict of fields whose name don't start with underscore.
        """
    
>       return dict((key, value) for key, value in o.__dict__.iteritems() if not key.startswith('_'))
E       AttributeError: 'NoneType' object has no attribute '__dict__'
```

The failure happens, because the `o` object passed into `public_fields` is None. The None object is the original empty credentials being compared to the new non-empty ones.

`Host.Credentials` object has `__eq__` overriden because it inherits that from its Updateable base class and that's why `all_public_fields_equal` is invoked by the comparison at `utils.update.py:27`.

That's why I went for the dict() being returned for NoneType objects passed to the `public_fields` func.