Problem: QML bindings don't support "interdependent" classes

Solution: Restructure the bindings to add this support
Incidental: Corrected json usage issue in QML bindings