RM-Skeleton multiple events fix

Fix for multiple events where the data attribute of the events is an InternalRef to the first event described.

ERROR:
"org.openehr.build.RMObjectBuilder  - @org.openehr.rm.Attribute(system=false, required=true, name=data)
org.openehr.build.AttributeMissingException: missing value for required attribute "data" of type class org.openehr.rm.datastructure.itemstructure.ItemStructure while constructing class org.openehr.rm.datastructure.history.PointEvent with valueMap: {time=2013-06-03T17:26:09,093, name=5 minute, data=null, archetype_node_id=at0028, template_id=null, offset=PT5M}
    at org.openehr.build.RMObjectBuilder.construct(RMObjectBuilder.java:335)
    at org.openehr.rm.util.SkeletonGenerator.createComplexObject(SkeletonGenerator.java:503)
    at org.openehr.rm.util.SkeletonGenerator.createObject(SkeletonGenerator.java:638)
    at org.openehr.rm.util.SkeletonGenerator.createAttribute(SkeletonGenerator.java:595)
    at org.openehr.rm.util.SkeletonGenerator.createComplexObject(SkeletonGenerator.java:224)
    at org.openehr.rm.util.SkeletonGenerator.createObject(SkeletonGenerator.java:638)
    at org.openehr.rm.util.SkeletonGenerator.createAttribute(SkeletonGenerator.java:565)
    at org.openehr.rm.util.SkeletonGenerator.createComplexObject(SkeletonGenerator.java:224)
    at org.openehr.rm.util.SkeletonGenerator.createObject(SkeletonGenerator.java:638)
    at org.openehr.rm.util.SkeletonGenerator.createAttribute(SkeletonGenerator.java:595)
    at org.openehr.rm.util.SkeletonGenerator.createComplexObject(SkeletonGenerator.java:224)
    at org.openehr.rm.util.SkeletonGenerator.create(SkeletonGenerator.java:165)"

The problem was when parsing the adl files, the SkeletonGenerator was looking for the value of the data attribute while in fact this value is only specified in the first event. The following events only have a reference to the data value of that first event since its repeatable throughout the events (see examples below taken from openEHR-EHR-OBSERVATION.apgar.v1).
Example adl:
"...
POINT_EVENT[at0026] occurrences matches {0..1} matches {    -- 2 minute
      offset matches {
            DV_DURATION matches {
                     value matches {|PT2M|}
            }
        }
      data matches {
          use_node ITEM_LIST /data[at0002]/events[at0003]/data[at0001]    -- /data[history]/events[1 minute]/data[structure]
     }
  }
..."

Fix:
The fix is, when building instance, if the current object is an ArchetypeInternalRef then create the object from the target path.

 - Lines 648 to 669 of SkeletonGenerator.java (added if clause and a new method)
 - Test class named TestEvents which uses the apgar score archetype to validate the instance creation, since it is a published archetype and the one I was using when I found the bug.
 - Included openEHR-EHR-OBSERVATION.apgar.v1.adl in the adl folder