Topological order

The idea is to sort addins in a topological order. Each addin can define one of five things for _order_:
* `>X` - I must be immediately after the addin with id X

* `>>X` - I must be somewhere after the addin with id X (but not necessarily immediately) 

* `<X`- I must be immediately before the addin with id X

* `<<X` - I must be somewhere before the addin with id X (but not necessarily immediately) 

* `Number` - A numerical order which is used if none of the above is applicable


i don't see any insertion into clusters, so why do you iterate it this way? do you expect the length to change and new elements to be added? if not, _.each is your friend
remember that in javascript if else and {} don't create scopes. wherever you have functions (like _.each) you have scopes. so variable declarations are much safer in functions etc...