Switch to a common BuildFactory creation function

WARNING: I have not tested this patch but I hope you find the changes worthwhile enough to try them out and merge it.

There are minor differences between build steps but they are mostly the
same.  The configuration file gets inconsistent very easily due to so
many duplicated BuildFactories.

Extract common BuildFactory setup code into create_build_factory().
Things to consider:

 * Git repository URL
 * Git branch
 * make(1) program name (e.g. gmake on OpenBSD and Solaris)
 * ./configure arguments
 * Out-of-tree builds using a separate directory

Locks are used to avoid hammering the git servers.  Automatically find
locks based on the git repository URL.  This saves us from specifying
the right lock variable for each BuildFactory.

This patch also runs "make check" on each BuildFactory.  This has been
requested by submaintainers who found their pull requests broke "make
check" - they'd like to find out earlier so run it on each BuildFactory,
not just the qemu.git/master default one.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>