Use resource methods for metadata get/set

The current approach of using the Metadata descriptor
class has some issues including:
* Unintended database queries on accessing a metadata attribute
* get/modify/set patterns since the attribute isn't backed by a real dict
* lack of control over whether to fetch metadata locally or from the db

This change creates Resource methods metadata_get and metadata_set to use
for reading and modifying resource data. This is a refactoring change only so
there should be no change in behaviour.

This change will help in the future with
Related-Bug: #1306743

Change-Id: I7cd87a071ac410a388d787f132c9aee194030714
Merge "Use resource methods for metadata get/set"