Refactor API

- Rename `fromAST` > `fromCST` to better reflect what type of
  syntax tree a `parser` returns;
- Add more, cleaner, comments;
- Add cached `hasOwnProperty` checks;
- Add mention on why `data` properties are currently not spec'd;
- Fix long error messages;
- Fix few grammar mistakes.
Merge branch 'refactor/api'

Better error messages, comments, and cleaner code.