Store scoped objects in registered ruby array

This leaves all the dirty work to ruby and avoids a
Scope::~Scope() vs. Scope::mark() race-condition.