Matrixjob support

MatrixJob job type support replaces PR #195 and PR #151

````
job(type: MatrixJob) {
   axis{
      text('axisName1', ['val1', 'val2'...])
      label('axisName2' [label-node','label-node'...])
      labelExpression('axisName3', ['label-node-expression'...])
      jdk('axisName4', ['jdk1','jdk2'...])

      configure { project ->
        def ax = project/'axes'
        ax << {
          'hudson.matrix.TextAxis' {
            delegate.createNode('name', 'axis1')
            values {
              string 'z'
              string 'y'
              string 'x'
            }
          }
        }
      }
   }
   sequential(true)
   touchStoneFilter('axisName1=="val1"', true)
   combinationFilter('axisName1=="val1"||axisName2=='master')
}
````