Cleaner way to switch workspace/project building

Selects what to build based on presence of :workspace_name and
:project_name parameters.

If both are ommitted - the first available workspace is used, otherwise
- the first available project