Add a result model & a decoder i/f. ParskTask will be removed later

* The Result interface is far from being complete, will be completed in
  later versions
* No test case covers Decoder so far, will be tested from Result.
* ParseTask will be removed, some of it has been moved to ResultImpl, the
  rest will be moved to a Syntax model.
Let Option.freeze() return themselves, helps invocation chaining