Complex rules implementation

Now one can compose parser of rules combination as follows:

```Scala
  class TestParser(val input: ParserInput) extends Parser {
    def ABC = rule { 'a' ~ 'b' ~ 'c' }
    def complexRule = rule { ABC ~ ABC ~ EOI }
  }
```

Rules are based on values classes (http://docs.scala-lang.org/overviews/core/value-classes.html). Jason Zaugg (@retronym) kindly provided `scalac` plugin warning you if value class is instantiated. It is available for public usage. Thanks, Jason  :+1: