Use static fields in the pass and arch derived classes
to register them to the factory, instead of having the factories
register every class.
For this, a CMake OBJECT library has to be used, otherwise the linker
will get rid of those seemingly unused symbols.
Having the static bool field in the base classes would require the use
of the Curiously Recurring Template Pattern and a bigger change. I
decided to leave it for now.
Indeed I forgot to update the documentation. This is done now.
I haven't added tests; but the existing tests cover the fact that passes are registered (I've experienced that when debugging).
Copy of commit message: