more EUI cleanups, allow compile option to not use std::string and iostream. Move comparison operators to top level to allow base classes to be used. Add helper functions at top level as well