Use proper workdir and srcdir.

- Use this.srcdir for 'copy' method's source checkout.
- Keep track of the workdir, don't assume its called 'build'
same fix for git. use "old_workdir" as in svn.py
Explicitly state that used /bin/bash shell in Makefile

Code

    $(shell if [[ `tar --version` =~ "bsdtar" ]]; ...

written using Bash double-bracket conditions syntax.  When (default on
some platforms) /bin/sh interpreter used this code outputs error (but
luckily works as required):

    /bin/sh: 1: [[: not found
Use declaration-time expansion assignment for $(shell ...) variables

Not important in this case actually, but recommended for such cases in
general (so that shell expression evaluated only once).
Check that all steps have a non-None name (fixes #2501)
render flunkOnFailure and related attributes of BuildStep; fixes #2486
Add Makefile target for running pep8 and pep8 configuration

Currently pep8 configured to ignore ALL errors that occures in Buildbot
code.
Run pep8 on Travis
Fix pep8 issue E101: indentation contains mixed spaces and tabs
Check only master and slave subdirectories with pep8

www/ subdirectory contains third party Python scripts which coding style
is not interesting to us.
Fix pep8 error E111: indentation is not a multiple of four

File master/contrib/buildbot_json.py was completely excluded from pep8
analysis because it uses two spaces for indentation.
Fixed CVS, Git source step "copy" method tests.
Use --init when updating submodules of a repo.
Test that submodule update --init is used.
Release notes for git submodule update --init.
Release notes: Git and CVS silently changed workdir
Use bash commands grouping with parentheses instead pushd/popd
Merge branch 'use_pep8' of git://github.com/vrutsky/buildbot
add pep8 to validate
Merge branch 'source-method-copy-srcdir' of git://github.com/jpommerening/buildbot