Convert the counter() method to use StringTemplate
Move first() to use StringTemplate.

Add templates for first() and last(). Migrate first() over.
Convert last() to use templates.
Convert sort() to use templates.

Convert the sort() method to use templates instead of array based HTML
generation.
Fix missing escaping in sort()
Remove ellipsis from first() and last()

Generation of the ellipsis really only makes sense in the context of
numbers() so the logic for it should live entirely in that method.
Update the numbers() function to use new template features.

Remove a number of options from numbers as they are no longer relevant
given there are templates for options like separator, and ellipsis.
Convert ellipsis string into HTML element.

Use an li element as the other pagination elements are wrapped in li by
default as well.
Remove separator element.

With modern CSS frameworks and CSS rules in general the separator
element is simply not worth its weight in most situations. The line
between pagination links can easily be handled through CSS borders now.

Not having this additional feature allows the internals to be simpler
with no loss of functionality in the majority of use cases.
Use integers for integery things.
Remove PaginatorHelper::link()

It was a fairly useless method. Since it was no longer used by
paginatorhelper internally it didn't make much sense to keep. The
various types of pagination links people will need can be generated
through the other methods on the helper.
Add missing model parameters.

These parameters will make it easier to implement multiple pagination in
the future as the URL generation will account for different models.
Remove dependency on HtmlHelper.

PaginatorHelper no longer uses HtmlHelper for HTML generation. This has
all been replaced by StringTemplate calls which result in more efficient
and simpler code.
Remove unused dependencies.
Update docs for numbers()
Importing Cake\Utility\Inflector class.