Pull in several changes from MultiMC

* No longer inherit from QObject
* No longer inherit bindings from parent. Instead walk up the stack of
  parents at call time to find matching bindings
* Get the QMetaMethod at bind time and do a few checks then
* Make all asserts Q_ASSERT_X's to provide more helpful information