feat($compile): support multi-elements in all declaration styles

I've built on the work of #2783 to make multi-elements possible in all
directive decralation styles.

Basically #2783 was limited to directives declared via attributes.
With this commit, appending X-start and X-end would work
in Comments, Attributes, ClassNames and ElementNames
```html
<table>
  <!-- directive: ng-repeat-start item in list -->
    <tr>If ngRepeat's 'restrict' get changed to include 'M'</tr>
    <tr>I get repeated</tr>
  <!-- ng-repeat-end -->

  <!-- the 'directive:' part for X-end is optional -->
</table>
```
**I will be adding tests for the compileSpec very soon, just wanted to know if it looks good for you guys.**

After I write the tests, I also want to add `restrict: 'CMA'` for the following directives:
* ng-repeat
* ng-show/ng-hide
* ng-if