Update the Narrative typed object and surrounding code

This updates the Narrative Typed Object to specifically include a list of data dependencies as a list of workspace object references. It also includes code to automatically translate existing references into that format (where applicable, and where they exist). All a user should need to do is log in and open an existing Narrative, and it will be updated. These updates will *not* be saved until the user saves them, however.

The Narrative TO doesn't substantially change. The Narrative's metadata (e.g. the sub-object itself that's marked as metadata, not the actual object metadata) was just an UnspecifiedObject. Now, it's more explicit, and includes a list of references as one of its required fields. This will make copying Narratives much, much easier.

I also revamped a chunk of the Narrative manager back end code, and wrote a new test suite for it. This also removes the older versions of the workspace clients (they were split into biokbase.workspaceService and biokbase.workspaceServiceDeluxe), and updates to the newest version (just biokbase.workspace). Any class that consumes that service is updated.