Refactor benchmark

- Add cleaner comments;
- Rewrite code to be mroe clear.
Refactor spec

- Rewrite all unit tests;
- Fix long test names;
- Add more, cleaner, comments;
- Add unit test for `applyPlugins`, which are covered by
  `parse`, but this is more explicit;
- Add test for the value passed to `plugin.attach` by `use`;
- Add test for the invocation order of `plugin.attach`s by
  `use`;
- Add test for the invocation order of `plugin`s by `parse`;
- Add test for the invocation order of `plugin`s by
  `applyPlugins`;
- Add test for the invocation order of complext nested `plugin`s
  by `parse`;
- Add test for the invocation order of complext nested `plugin`s
  by `applyPlugins`.