Bulk pull request, fixes for number of issues. Details in commit messages.

One thing we should diskuss - default behaviar of OpenEHR::AssumedLibraryTypes::Interval. 

In ruby implimentaion Interval doesn't include boundaries by default. 
If we write:

    i = OpenEHR::AssumedLibraryTypes::Interval.new(:upper => 1, :lower => 1) 

This interval of integer (in existence, cardinality and occurences) is unusable because 
  
    i.has?(1) == false

In Java implimentation Interval includes boundaries by default
https://github.com/openEHR/java-libs/blob/master/openehr-rm-core/src/main/java/org/openehr/rm/support/basic/Interval.java

Should we do the same thing?