Adds form for creating operator shelves (bug 1074429)

This is enormous and should probably be multiple commits, but it's about 80% copy/pasted from transonic, so I'm just going to merge it.