Allow to update not synced items from EnginioModel.

Update operation requires an object id as part of query.
It is not a problem, even for not synced objects to get and
use it. The only issue was if the object didn't have id, because
it's create query was not finished. In such cases we postpone the
remove request until creation is confirmed and we have the real
object id.
Share code between setDataDelyed and remvoeDelayed.

Because sharing is good.
Merge pull request #187 from nierob/master

Model improvements.