moved master argument parsing to CreateSlaveOptions class

Moved the code that validates and parses 'buildbot create-slave'
master argument to runner.CreateSlaveOptions class.
slave cli: replaced Maker class with local functions

No point in creating a single instance of Maker class, we can as well
call some local functions.
catch IO errors when doing 'buildslave create-slave'

When creating buildslave directory with 'buildslave create-slave'
command, catch IO errors and print user friendly error messages.
added unit tests on buildslave.scripts.create_slave.createSlave()
added unit tests on buildslave.scripts.create_slave._makeBaseDir()
added unit tests on buildslave.scripts.create_slave._makeBuildbotTac()
changed indention to follow PEP8
buildslave.test.misc.OpenFileMixin: specify default errno

In methods that patches open() to simulate open, read and write errors
use default errno for the exception raised.
added unit tests on buildslave.scripts.create_slave._makeInfoFiles()
renamed buildslave.test.misc.OpenFileMixin class to FileIOMixin

The FileIOMixin class name is more descriptive, as the mixin now patches
more then just open() function
MercurialExtractor: set baserev in parseStatus (indentation error)
MercurialExtractor: correctly calculate GCA between working directory and upstream
MercurialExtractor: report hg errors
MercurialExtractor: fall back to working directory diff if no upstream is configured
Merge branch 'create-slave-cli' of git://github.com/elmirjagudin/buildbot
Merge branch 'mercurialextractor' of git://github.com/bcully/buildbot