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
I'm not sure if logic of this relationship is correct...
* BuildTrigger triggers `ProjectBuildConfiguration` stored in `buildConfiguration` field.
* So what is the purpose of `triggeredBuildConfiguration`? I think it should be always equal to `buildConfiguration`.