It's fine to ask about Smalltalk here; we have a historical connection with Smalltalk, which was the implementation language for BYOB before it was rewritten as Snap!. Jens started programming in Smalltalk.
I'm not an expert on Smalltalk, but I think I can answer two of those questions.
Squeak is the right thing. At some point in the past, mainstream Smalltalk changed its mission from being a language for kids (as in Alan Kay's original vision) to being a language for adults doing production programming. Squeak is Alan's return to the original idea.
Of course. You can implement anything in Snap!. :~)
But to move beyond that answer I have to know what the question really means. Do you just want a class/instance system instead of a prototype based system? That's easy. Make a sprite, give it all the methods and class variables you want, clone it, and then hide the original. That original is now a class, and its clones are instances.
If you want it to behave exactly like Smalltalk, you have to do a little more work. In Snap!, the parent's variables are copied, not shared, in the clones. This is a compromise; the pure conceptual Snap! clones would share every property with their parents unless they do something to break that link. But too many projects depend on giving clones ID numbers by creating the clones inside a FOR loop, so if the ID number were shared, all the clones would have the same value. So you'll want to say something like
But if you want to build a class/instance system yourself, we show how to do that in Chapter VIII of the Manual. First class procedures are all you need; objects are just a metaphor wrapped around closures (the procedures you make using rings).
If there's some specific feature of Smalltalk objects I'm forgetting, ask a more detailed question.