Custom workspace can specify the (auto-generated) 'WORKSPACE' variable path for modification

Made it so that a custom workspace can specify the 'WORKSPACE' variable, and if that is the case then the custom workspace is treated as a _modification_ of the auto-generated workspace, i.e. you can append extra detail to the workspace directory name.

For example, this means you can specify ${WORKSPACE}_${Branch} - where Branch is a job parameter. If running concurrent builds then the build separator and concurrent build number are still appended to the end of the workspace path. This is required by the Perforce plug-in, and perhaps others, so this convention is preserved.

My first commit so apologies for any problems! I have tested the changes with normal workspaces, a custom workspace not using the WORKSPACE variable, and modified workspace using the WORKSPACE variable as above. The code works as expected. This change should not break any existing usage scenarios as it would not have been valid to specify the WORKSPACE variable in a custom workspace definition prior to this change.

My original issue has an explanation of the overall problem this solves:
https://issues.jenkins-ci.org/browse/JENKINS-23929

Also added netbeans configs to the .gitignore as these are local config files.

Creating this pull request as functionality seems generally useful and could be beneficial to others.