Ref T4379. Projects has been partially converted to ApplicationTransactions, but the rough state of the world is that all the storage is modern, but most of the stuff on top isn't yet. Particularly, there's a PhabricatorProjectEditor which is not a subclass of PhabricatorApplicationTransactionEditor, but which fakes its way through writing reasonable data into modern storage.
This introduces a real transaction editor, PhabricatorProjectTransactionEditor, with the eventual goal of moving all of the old functionality into it and deleting the old class. This diff only moves the membership transaction into new code (it doesn't even move all of it -- when we create a project, we add the author as a member, and that can't move quite yet since there are other transactions at the same time).