Merge pull request #42 from tbuehlmann/master

Removed Ruby warnings
Move core extensions to lib/core_ext.rb
Require citrus in core_ext.rb
Only require citrus/core_ext in test helpers
Merge pull request #44 from blambeau/master

Move core extensions to lib/core_ext.rb
Updated CHANGES
Releasing 2.5.0
Updated CHANGES
Show why Match#method_missing is unsafe with a test.

The added test case shows that Kernel::p is actually called in place
of Match#method_missing when 'p' is used as a label or rule name.

As any gem might contribute private methods to Object, using Citrus
labels (or even rule names, actually) in semantic productions without
doing so with Match#captures is unsafe.

Moreover, the addition of any method/helper to the Match class may
potentially break an existing grammar, so it breaks Citrus's public
API and should probably increment the MAJOR version number.
Remove Match#method_missing, add Match#capture(name)

Match#method_missing is unsafe as illustrated in Github issue #41.
In particular, it makes composing a grammar with aribitrary gems
unsafe when the latter make core extensions, leads to unexpected
results with labels matching Kernel methods (e.g. `p`), and
prevents the Match class from getting new methods in a backward
compatible way. This commit therefore removes it.

A convenient method is provided to get a single capture by label
name. Calling string operators must now be done via Match#to_str.
Fix the Match#method_missing related test.
Update README to reflect Match#method_missing removal.
Enhance Match#captures and test both #capture and #captures
Rephrase CHANGES.
Merge remote-tracking branch 'blambeau/no-method-missing'

Conflicts:
	lib/citrus.rb
	lib/citrus/version.rb
Version 3.0.1