[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
Maybe add a comment here that you need to read the raw value, not the calculated property. Otherwise, it's way to easy to read these two lines and think you are missing a '_'.