Add new 'setPage' and 'drawPage' functions.

As an alternative to @michael-misshore's patch for drawPage, this also adds a setPage function that will respect selectOnClick. I moved all of the duplicated code from _selectPage into setPage so that drawPage and _selectPage calls the code that is provided in setPage.

This allows you to update the page that is selected without triggering the onPageClick callback.

Also, if you still want selectOnClick to be respected, you can use setPage instead of drawPage. setPage will not redraw the pagination.

Note: This patch has been rebased, and @michael-misshore's original drawPage function removed.