Added path dependent types. Should make mixing xbrli objects of differen...

Added path dependent types. Should make mixing xbrli objects of different unerlying elem implementations impossible.

Removed implicit conversion of indexed.Elem, replaced by explicit wrap(e: E): DomElemApi. 

Probably the DomElem wrapper can be cut out now, but refactoring that was not part of the path-dependent typing technique I'm trying to show.