GET servers API sorting enhancements common utilities

This change is to support updating the v2 and v3 /servers and
/servers/detail APIs to support multiple sort keys and sort directions
(using the 'sort_key' and 'sort_dir' parameters); these parameters can
be specified multiple times to create a list of sort keys and
directions.

This patch set contains utility functions to:
* Process the input sorting parameters on the request
* Process the sort keys and directions to include the default keys

The main complexity in this change deals with defaulting the sort keys
and directions so that server order does not change for existing
paths. A new 'process_sort_params' function is created to consistently
process the the sort parameters (ie, 'sort_keys', and 'sort_dirs')
that will be passed from the REST API, through the various layers, and
down to the DB API. This utility function will be invoked when the sort
params need to be processed (and defaulted) in the DB sqlalchemy layer
(prior to invoking the common paginate_query function).

These functions will be consumed in another change set.

Change-Id: I4253bc7d43142b783c14096d2834f53dcc0b7d3f
Partially Implements: blueprint nova-pagination
Merge "GET servers API sorting enhancements common utilities"