minor typos
Use a more portable version of M_PI (and preserve strict ANSI)
Catch LuaExceptions from slots

This is controversial for me, since this is suppressing an error at a
very non-local level. For example, this patch causes this situation to
behave unexpectedly:

id = 0;
...

void use()
{
    // Pretend a Lua exception could occur here
    id++;
}

connect(a, SIGNAL(someSignal()), b, SLOT(use()));

... within a
emit someSignal();
// Depends on b incrementing the id
nextId = id;

Originally, the exception would propagate and crash the program.

However, I believe this is justified since signals and slots follow the
observer pattern. In this case, there shouldn't be any dependency from a
signal to a slot. As a result, as long as the slot crashes without
causing dangerous side effects, the program should behave in a somewhat
defined manner. (As much as this situation can be defined).
minor doc
minor error checking
minor reword
Push nil for null pointers
Improved save()

It now accepts an index to save, and it doesn't pop the value. saveAndPop
mimics the old behavior. There's a missing case of "save and pop this
index" but I haven't actually needed to do that yet, so I'll just leave it
out.
Just include iostream for now
Added some debug statements
Made QObjectObserver more strict in how it destroys objects

I also made setDestroyOnGC destroy the data if it's set to true and the
data has been destroyed.
minor debug
minor clean
minor debug