Automate lazy generation of REPL completion lists

All invokable methods, slots, signals, and properties visible from JavaScript, but which do not start with an underscore, are lazily (only when necessary) added to the completion list through dynamic reflection.

This leverages `QMetaObject` for reflection of `QObject`s.  As such, there is now no need to inherit `REPLCompletable` and it has been removed.

http://code.google.com/p/phantomjs/issues/detail?id=943

---

**UPDATE 1** (2012-12-30)

I ran with @ariya's [suggestion](http://code.google.com/p/phantomjs/issues/detail?id=943#c2) to completely remove `REPLCompletable`.