get_primary_key() works with inheritance and multpiple pks

* `contrib.sqla.tools.get_primary_key()` now works with inhteritance *and* multiple primary keys.

Every primary key is checked if it is a inherited one, and if it's inherited, the *current* column.key is returned. I *think* it should be safe just to use *prop.expression* here, but I am not absolutely sure.

( see http://docs.sqlalchemy.org/en/rel_0_8/orm/internals.html?highlight=columnproperty#sqlalchemy.orm.properties.ColumnProperty.expression )
Merge branch 'multiple_primary_keys'
Support Mass-delete with multiple pks

`contrib.sqla.view.ModelView.action_delete()` now is able to mass-delete models with multiple primary keys. Therefore, two new helper functions has been introduced in `contribg.sqla.tools`:

* `tuple_operator_in()` that fakes the `sqlalchemy.tuple_` operator for engines, that do not support the `tuple_` operator. (like sqlite)
* `get_query_for_ids()` that returns a query, object that contains all objects identified by the `ids`.

Both functions have docstrings with more information.

The logic of the `action_delete()` did not change, as for objects with a single primary key, the codepath did not change at all.
Merge branch 'multiple_primary_keys'