Decouple annotations from encoding/decoding (which is handled by ModelDB)

This makes annotations declarative only and the ModelDB instance is responsible
for processing annotations and converting between model instances and datastore
entities.

The CL contains also a fix in the db e2e test and more strict assertions by
asserting the correct order is returned.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//682963003