refactor file+matter creation in cucumber steps
refactor step to support page creation
add failing test for sorting pages by custom variables
clean up custom variable sort feature
allow data attribute access by Liquid on Convertible items
make non-data properties/methods accessible to Liquid

per https://github.com/jekyll/jekyll/pull/1849/files#r8490593
Fix the highlight tag feature

Previously, the assertion made wasn't enough to check whether the code
block was correctly parsed through Pygments (and it was not the case).
This commit simply ensure there is a div with the "highlight" class and
fix the test to correctly invoke the Liquid tag rendering.
Rename the pygments option to highlighter

Rename the pygments configuration option to highlighter to allow
different highlighters in the future. For now, the allowed values are
`pygments` and `null`.

It's now more straightforward to plug another syntax highlighter.
Add support for the Rouge syntax highlighter

By setting the `highlighter` setting to `rouge` you can now easily
highlight your code with it instead of relying on Pygments. However,
Jekyll doesn't depend on Rouge explicitly, you will need to install it
or add it to your Gemfile.

The documentation has been updated accordingly.
Set highlighter to pygments when upgrading

In case you are upgrading from 1.4.2 to 2.0 and the pygments option is
set to true, then the highlighter option will be set to pygments
automatically.
Rely on the Redcarpet plugin instead of hard-coding

To avoid code duplication and have to keep tracking of the API change of
Rouge, let's rely on the Redcarpet plugin and customize the output on
our needs.
Merge remote-tracking branch 'upstream/master' into sort-attributes
fix file sorting test
Set the wrap option to false when using Rouge

Since Rouge yields the pre tag with a class attribute but we don't want
it, we should set the wrap parameter to false when instantiating a new
formatter object.

Also use Rouge::Formatter#format instead of #render which is deprecated
and will be removed in the near future.
Fix various typos and improve the doc
Remove a useless given step

Since the highlighter configuration option should default to pygments,
we don't have to explicitly set it in the step testing the output with
pygments.
Require at least 1.3.0 for Rouge

Rouge 1.3.0 introduced a `rouge_formatter` helper which is handy to
overwrite the formatter default when using the Redcarpet plugin so let's
require this version at the very least.

An abort statement will be thrown when the installed version is not
correct.
Bump safe_yaml version to include the fix for dtao/safe_yaml#35
Merge pull request #1886 from ivantsepp/1845_bump_safe_yaml_version
Update history to reflect merge of #1886