Added implementation of OpenStruct taken from the Ruby source