Redid signal propagation w/ topological sort.
merge is still broken though.
Merge works with some bookkeeping.
Fix generic push! method
Merge pull request #9 from shashi/topo_sort

1. Use topological sorting for signal proagation
2. More signal types: Filter, SampleOn, Merge, DropRepeats. Node is now abstract