Merge pull request #11 from abalandin/master

package.json (+scripts), Makefile (+sources)
fix: npm-friendly deps
package.json getting ready for npm

see our package at https://www.npmjs.org/package/swarm
thanks to Tristan Slominski for donating the package name
less npm dependencies

see https://github.com/gritzko/swarm/commit/d5d1081762c51fb1a7a4a5c10d8d2efd766d6b25#commitcomment-7551285
"main", "browser" fields in package.json

see https://github.com/gritzko/swarm/commit/d5d1081762c51fb1a7a4a5c10d8d2efd766d6b25#commitcomment-7551589
see https://gist.github.com/defunctzombie/4339901
fixes: various

Makefile, package.json and other minor fixes and enhancements
initial implementation: Set relays object events

Sometimes we want listen for state events emitted by any object in
a Set. So, now we have set.onObjects('.opname', callback);
React mixin: use "key"

Leave an opportunity to use the "key" property to pass the model's
specifier. (2birds 1stone)
Added LongSpec (long compressed id strings)

We need very long id strings to maintain CRDT weaves or arrays.
The default specifier format is rather verbose, mostly for the sake
of readability, so we also need some compressed format in the
spirit of http://bouillon.math.usu.ru/articles/ctre.pdf
...and now we have it.
cleanups in LongSpec: jshint, formatting, refac
track FIXMEs as well
refac: Clock is now a separate class

Many new features and old todos depend on clocks. To move those
forward, Lamport timestampgeneration is encapsualted into separate
(pluggable) classes (SecondPreciseClock by default).
Minute-precise clocks

Nice optimization for weave sizes is to use coarse-grained
timestamps that fit into 2 unicode chars and, most importantly,
increase incrementally in most of the cases.
Also see LongSpec sequential compression.
fix some missing dependencies