Fix array watching issue. Was affecting more than just plain arrays due to differences between typeOf and isArray.

Also made the watching related functions' return values consistent.

TODO: write tests for this