add build.buildid, sl.buildslaveid, and st.stepid

This required a lot of refactoring of old tests.  It also required
changing the automatic generation of source step names to generate
proper identifiers.
WIP