Option to preserve order of packets in GroupedInput

**Changes**:
 - Added concept of Streams to turn FBP substreams into JavaScript objects and vice versa.
 - Added `ordered` option to `GroupedInput` which makes Async components guarantee that packet order on input is preserved on the output. This is a replacement for what `AsyncComponent` supposed to do, but it didn't maintain substreams consistency.
 - Fixed a few issues about groups and synchronization, ensured that Substream sends are really atomic for async senders.
 - More specs!

It will probably be followed soon by `StreamReciever` and some examples of working with streams as a whole, if it turns to be practical enough.

**An important question** is: should the `ordered` option be on or off by default in Async components? For FBP it is `true`, for dataflow systems it is usually `false`.