Move free_mem() to utils
Rename Model -> Layer, State -> Signal
Reorganize signals and layers
Allow more flexible ECA layer specification
Add support for disabling layers
Unsupervised case: add extensive plots