
* implement server side

* make sure that we marshal everything right
  - some problems with unions ...
  - Principal (?? what's this)
  - long doubles
  - fixed
  - value
  - value box
  - native
  - abstract_interface

* order of initialising types?
   For the following example:
        union EnumUnion switch (enum Colour { red, green, blue }) {
        case red: long x;
        case blue: boolean y;
        };
   ORBit_small_get_types() returns the following types in this order:
     - IDL:orbit/test/EnumUnion/Colour:1.0
     - IDL:orbit/test/EnumUnion:1.0

   The current code will create an orbit.test.EnumUnion module to set up the
   enumeration, then overwrites the reference with the
   orbit.test.EnumUnion stub, so we can't get at the enum values.
