Reimplemented scope

1. fixed scope so pawn is no longer hand-coded
2. wrote genSnap and isOut methods
3. fixed some logic bugs in getScope