Make GradleDirectModel immutable and create GradleDirectModelBuilder