Let parser enumerate groups

This change has been implemented in order to properly support repetiton
over groups.

Change involves addition of user state to parser. For our case, simple
integer works, since all we need is to get unique id for each group.
Number of created groups is now returned to caller since this is needed
to properly allocate memory in enumerator.
Update parser's unit tests

Test have been brought back into sync with parser's API.
Sync Enumerator with new Parser API

Two main groups of changes have been made in enumerator:

  * Groups has been superseded by Memory, which now serves as modifiable
    storage space for group contents. Now it is possible to replace
    group's content if enumerator reevaluates part od the regex that
    defined this group.
  * Open and Close actions now operate on specific group. There is no
    such concept as "last opened group" anymore, since all group ids are
    determined at parse time.
Update Enumarator tests

Again, tests have been synced with API changes and internal
modifications of enumerator.
Merge branch 'group-ids'
Update cabal file

Add git repository information and short description of package.