[RFC] Put workdir calculation in base Buildstep class

The one is ShellCommand is generic logic enough to
be useful in base class.

Mark setDefaultWorkdir as deprecated

There as been some discussion lately about confusion on the workdir. I find it also confusing, this is an attempt to simplify things, and make a simple message for every steps the workdir should be as documented:

* workdir of the step, if defined

* workdir of the codebase, if defined

* workdir of the builder (itself defaults to 'build')


I probably have some tests to update, early upload for comments
These lines come from https://github.com/buildbot/buildbot/commit/d454b81852eae9adf15ccf4611d64ed286047e42

Which is actually pre-codebase