Add repeating support to RemoteDPad
Provide Support for Complex Hierarchies

Some providers may want to add extra levels to their remote hierarchy such as breaking down by device. This is the refactor for that.