fix for compatibility with getattr() buildin method

- fix for compatibility with getattr() buildin method. When an invalid key is requested, it now raises a AttributeError instead of a KeyError.
- allow initialization without arg: Namespace() is equivalent to Namespace({})
Not for getattr() buildin command. It catches an AttributeError in order to return the default value in

    getattr(d, "invalid member", default_value)