Make beginClass/endClass work in nested classes

This is my quick stab at making it possible to define nested classes more elegantly like this:

    .beginExtendClass<wv::physics::ControlAction>("ControlAction")
      .addConstructor(LUA_ARGS(wv::physics::RigidBody &))
      .beginClass<wv::physics::ControlAction::Input>("Input")
        .addConstructor(LUA_ARGS())
      .endClass()
    .endClass()

The API feels clean but I think the implementation could be improved a bit. I tried to minimize the amount of existing code I needed to change while making this work.