Model implementation

Initial model implementation proposal based on @pgier initial proposal and @matejonnet initial draft (I have added javadocs in pcn-model module, please take a look for descriptions of classes)
To be discussed:
* improve BuildCollection (needed to map Product "content")
* existence of BuildTrigger to map parent-child dependencies (or simpler i.e. a Set of ProjectBuildConfiguration inside ProjectBuildConfiguration? instead of a Set of BuildTriggers)
* need of triggeredByBuilds inside ProjectBuildConfiguration (@pgier was that the intention of buildTriggers2?)
* purpose of BuildType
* enhancement of Environment (i.e. add a Set of EnvironmentRequirements like MAVEN_3.1.1, JDK8, etc to specify what is needed inside the Environment? those properties should be used by the EnvironmentDriver)
* purpose of RunnableEnvironment
* existence of SystemImage (provided by EnvironmentDriver once it has identified the image where to run the build; should be linked to ProjectBuildResults)

@jdcasey @matejonnet @rnc @slaskawi please review
It looks like we have tabs in formatters. I'm not a big fan of this approach - it may look different on each environment. Maybe slightly better idea would be to use spaces (4?)?