Aligned AST interfaces with Ruby definitions

Wile trying to move the reveal.js slim backend to a Groovy MarkupTemplateEngine based approach I needed to make these changes.
The members that are moved from AbstractBlock to AbstractNode are are also defined on AbstractNode in the Ruby implementation.

Some methods like DocumentRuby.doctitle() or AbstractNode.getAttr() were overloaded to mirror the defaults defined in the Ruby implementation.
With Dan we decided to avoid using the short (none Java Beans) form. In fact there is an issue to change everywhere. For this reason there is the getRole() method. The same should be for context, document, ... you can read more at https://github.com/asciidoctor/asciidoctorj/issues/240 We are going to gradually but if new methods can follow this convention it will be less work to be done then. Of course it is totally fine you didn't notice this change yet :)