object: count has gotten smarter

It can now check if the object is a specific length, or empty
uid.js ftw

⌐■-■ deal with it
uid.js in emitter
fixed defer.timeout, added unit tests

also rewritten quite a bit of defer.js
timeouts are now batched when called during the same run loop