Merge branch 'release/0.2.8' into develop
Merge branch 'hotfix/0.2.9' into develop
Changes/Fixes to run_tests, closure_split and the base Parser, added shell Usenet parser

 - Added run_tests data escaping
 - Added shell usenet parser
 - Closures smaller than 2 characters are now discarded
 - We now start from a CaperRootNode so the first closure can be parsed
Cleaned up CaptureGroup matching to make closure matching easier, Split CaperNode tag, weight and match into a new CaperMatch object.
Added 'step' to CaperMatch, Updated CaptureStep to set this attribute
Updated some objects to have a basic __str__ and __repr__ method
Updated constraint system with pre and post constraints, added until_result, until_failure and until_success constraints.
Updated usenet parser (still a bit more work needed)
Fixed constraint branching issue
[Usenet Parser] Identifiers before the release name are now matched
Replaced CaperResult.captured with CaperNode.captured() so the result is based on the current result chain.
[Usenet Parser] TOWN releases are now correctly parsed
Added usenet parser tests
Fixed issue with has_info and bug with part matching on "normal" subjects
[Usenet Parser] Added test_bare (not supported in usenet parser yet)
[Usenet Parser] Few more subject styles supported, cleaned up UsenetParser.run a bit
[Usenet Parser] Fixed test_town_style
[Usenet Parser] Enabled test_bare (supported now)
Caper closure split updated to split strings separated by ' - ' outside of closures
[Usenet Parser] Fix for site matching