Refactored PaginatorComponent::validateSort() to support multiple field sorting.

Also:
* Consistent `alias.field` output, for virtual/whitelisted fields it would have only `field`
* Whitelist support for foreign fields
* Used data provider to prevent tests of repeating itself