Impacted versions:10

Steps to reproduce:
Following the code in https://www.odoo.com/documentation/10.0/api_integration.html both in a fresh install and against 'https://demo.odoo.com/start' trows a type error

Current behavior:
Now I get an error when executing:

```
ids = models.execute_kw(db, uid, password,  'res.partner', 'search',
    [[['is_company', '=', True], ['customer', '=', True]]],
    {'limit': 1})
[record] = models.execute_kw(db, uid, password,
    'res.partner', 'read', [ids])
# count the number of fields fetched by default
len(record)
```

In particular it seems to be a type error (cannot marshal class odoo.tools.float_utils.float_precision)

Expected behavior:
I would expect it to behave as in the documentation

openerp/fields.py
for field in fields:
                    spec.append((field, None))
        return spec
    def modified_draft(self, records):
        """ Same as :meth:`modified`, but in draft mode. """
        env = records.env
        
        
        spec = []
        for field, path in records._field_triggers[self]:
            if not field.compute:
                
                
                
                
                continue
            target = env[field.model_name]
            protected = env.protected(field)
            if path == 'id' and field.model_name == records._name:
                target = records - protected
            elif path and env.in_onchange:
                target = (target.browse(env.cache[field]) - protected).filtered(
                    lambda rec: rec if path == 'id' else rec._mapped_cache(path) & records
                )
            else:
                target = target.browse(env.cache[field]) - protected
            if target:
                spec.append((field, target._ids))
        return spec
class Boolean(Field):