Include Slim helpers in the template's execution scope

Slim doesn’t include helpers in the template’s execution scope such as HAML, so we must do it ourselves. The approach used in this PR is similar to HAML (see [there](https://github.com/haml/haml/blob/4.0.5/lib/haml/engine.rb#L124-L127)), but simpler and way more efficient.

This patch allows to:
* use helper methods in Slim templates without inconvenient `Helpers.` prefix,
* access node’s variables and methods inside helper methods.

For example it allows to write helpers like:

```ruby
module Asciidoctor::SlimHelpers

  def section_level
    (@level == 0 && @special) ? 1 : @level
  end

  def section_numbered?
    sectnumlevels = (@document.attr :sectnumlevels, 3).to_i
    @numbered && @caption.nil? && section_level <= sectnumlevels
  end
end
```
> Can you make this `::Asciidoctor::SlimHelpers`?

Okay.

>I wonder if we should flip the conditional too so that we first check for ::Slim::Template.

Nope, I’ve tried it already and Travis yelled at me. :) The problem is that `::Slim` may not be defined, because it’s required conditionally [here](https://github.com/asciidoctor/asciidoctor/blob/v1.5.1/lib/asciidoctor/converter/template.rb#L262).