Throwing proper JS errors so we can get stacktraces out of them

Bleh.  I think it'd be best if we could throw something like
`NetLogoError`, so we'd know that it came from the engine and not
someplace else, but, unfortunately (and to no one's surprise), `Error`
in JavaScript is yet another ghetto hack; you can't easily extend it
with the correct semantics.

The best bet alternative seems to be to create a separate function for
creating a new `Error` and marking it as being from the engine, but then
that function shows up in the stacktrace.  To me, it's not yet apparent
that we _need_ to be able to tell if an error came from the engine, so I
think we should just punt on this for now.
Cleaning up some silliness with perspectives
Code clarity improvement
Ensuring that `clearall` clears the perspective
Code reordering
Scrubbing bubbles
Implementing `subject`
Implementing `follow` and `ride`
Renaming `watchme` => `watchMe`
Implementing `followme` and `rideme`
Fixing up `patch x y` to better handle wrapping and topologies
Ensuring that only unique patch neighbors are retrieved
Fixing minor bug in non-wrapping topologies
Implementing `__changetopology`

Woot!  This gets a ton more tests passing and caught three bugs (which I
fixed in the three previous commits).