Add MultiCodebaseScheduler (refs #2490)

This scheduler is for builders that require multiple repositories.
It keeps track of the last revision seen for each codebase. When a
change or changes create a buildset any codebase/repo that does not
have a change will use the last seen revision instead of the latest
revision.