[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
Agreed that this would make a huge patch, but I believe this is a necessary modification that belongs to that PR ...

@djmitche Any opinion as to why do we test for 'wkdir' instead of 'build' ? Can we remove that ?