feat($compile): explicitly request multi-element directive behaviour

Before this change, any directive would automatically be treated as a multi-element directive, and
nodes between <node directive-start> and <node directive-end> would be grouped together.

After this change, it is necessary to explicitly request this grouping functionality, by setting the
directive's "multiElement" property to a true.

This allows the use of attributes ending in '-start' and '-end' to be applied to the Attributes
object correctly.

BREAKING CHANGE: Directives which previously depended on the implicit grouping between
directive-start and directive-end attributes must be refactored in order to see this same behaviour.