Basic garbage collection support (updated)

Hey all,

I've rebased this pull request - #16 (originally by @vitalif) - over the current master. Also added gc command to usage help.

Please review and merge. If any issues appear - let me know - i'll fix it.
Isn't it mandatory when methods are declared as virtual = 0 in the base class?