GET servers API sorting compute/instance/DB updates
GET servers API sorting compute/instance/DB updates

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.

Contains the changes that will be used by the REST API layer:
* Compute API updates on the get_all function to support sort keys
  and directions
* InstanceList updates on the get_by_filters function. The new
  'sort_keys' and 'sort_dirs' kwargs are added but the existing
  'sort_key' and 'sort_dir' kwargs must remain for backward
  compatibility.
* DB API has a new 'instance_get_all_by_filters_sort' function that
  supports multiple keys/directions. The existing
  'instance_get_all_by_filters' remains for backward compatibility
  and calls the new sort function with the single sort values
  wrapped in a list.

Note that the defaulting of the sort keys and directions is done in
the dependent patch set in the new 'process_sort_params' function
(invoked in db.sqlalchemy.api); by default, the sort keys are
'created_at' and 'id' in the 'desc' direction.

The REST API changes that consume these updated will be pushed in
another change set.

Change-Id: Iec2bba18c8894302e3ba35af69379ea9c1da04fc
Partially implements: blueprint nova-pagination

openstack/oslo.versionedobjects,citrix-openstack-build/oslo.versionedobjects