Merge pull request #1441 from Ichimonji10/simplify-factory

Drop custom error checking code
(API) Fix up the "Architecture" entity

Override `Architecture.create` and `Architecture.read`. This makes it possible
to:

* Create an architecture that points to some number of operating systems.
* Read which operating systems an architecture points to.

Update the test suite to exercise these changes.