Fixed `is` when checking for booleans, and improved tests.
Fixed a bug when calling `is` with identical args

`is(x, x)` could return false if `x` is an object
Fixed `type` to return constructor name if it exists.

N.b.: If you do `Object.create(function() {}, {})`, the resulting object
will have a constructor set, but not to the prototype function and I have
no idea what indeed it gets set to. Might be worth investigating.
Tab fix in test/each.js
Added `every` for easy testing of sequence values
A stab at protocols
Stash