more documentation
heavily refactor to aggregate code for searching labels and for getting
artifact metadata

the current approach for edit resource fetches all of the metadata using
ajax in the same way that it does for adding a new object, so there
doesn't seem to be a need to reimplement the code in slightly different
ways each time