The support for multiple sub_filter-s

Squashed commit of the following:

commit dc0110cd8a479003fa946b24dff1bb8666186699
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Sat Mar 2 02:52:29 2013 +0400

    Final touches

commit 4a9412947526aa947eb2d482c7ea2139192b3f50
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Sat Mar 2 02:46:33 2013 +0400

    Chain recycling

commit e8ab0696426a9de8f338dcc1ac6ccbdee0390553
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Sat Mar 2 02:34:39 2013 +0400

    Better FSM debug vis

commit bc7db3066016315679d612a2c896a6caf2b84bfd
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Sat Mar 2 02:11:29 2013 +0400

    Multiple sub_filter-s finally supported

commit fd521fc4c79dcfe2c65e334694ab9fa936a4fbd7
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Fri Mar 1 17:49:10 2013 +0400

    Add FSM compiler

commit 142bfb8c3397907f1cee42c7749e29640781197a
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Thu Feb 28 22:31:16 2013 +0400

    Bugfix

commit dee85cf03cba401e78944a61ec5bd4ab461944ce
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Thu Feb 28 20:25:41 2013 +0400

    Add fast search state

commit 76b639cde38b70e35b115f0c8aaadd55305e2837
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Thu Feb 28 20:18:16 2013 +0400

    Redesign fsm

commit 97a83f954c2dabb929b02fed3ab9e93acfa3ea9b
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Thu Feb 28 19:08:33 2013 +0400

    Implement rewriting engine

commit bed2f8ffc14fd89bd476f3a4aa51cdb66dee6fd0
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Wed Feb 27 23:46:17 2013 +0400

    Add implementation notes

commit 77f886fba8e84f423bb29153bdbd9d34e4ddd7f9
Author: Nick Zavaritsky <mejedi@gmail.com>
Date:   Tue Feb 26 22:23:40 2013 +0400

    Remove some code