Multiple Primary keys for sqla backend

Flask-Admin can now handle multiple primary keys to some extent. `get_primary_key()` and `get_pk_value()` where the simple, but important changes. When building the url in `list.html` via `url_for` a url with multiple `&id=x&id=y` is built. As the order as preserved and the request args are from type `werkzeug.datastructures.MultiDict`, the multiple PKs can be grabbed in the correct order an push into `get_one()` which actually has no problems with multiple keys, as sqlalchemy's `query.get()` works exactely in this way.

* `contrib.sqla.tools.get_primary_key()` returns a tuple of all primary keys, if there are more than one PKs
* `contrib.sqla.view.get_pk_value()` returns a tuple with the values of all primary keys, if there are more than one PKs
* `model.helper.get_mdict_item_or_list()` return the single item of a given MultiDict for the given key or the whole list of items, if there are more than one.
* `model.base.BaseModelView.[edit_view|delete_view]` can work with a single *id* or multiple ones, by using `get_mdict_item_or_list()`
* New option `form_excluded_pk_columns_from_unique_validation` for `model.base.BaseModelView` including docstring.
* Option is evaluated in `contrib.sqla.form.AdminModelConverter.()`

Tests and documentation is included. An example file showing the feature is in `sqla/examples/multiplepk.py`

The changes itself are very small, although it took me hours to go there - the MultiDict saved me! I will change my app I am currently working on to multiple primary keys this week and will push updates if necessary.
handle multiple pks in AdminModelConverter.converter()

* New helper-function `contrib.sqla.tools.has_multiple_pks(model)`
* The unique validator is only added to the primary key column in `converter()`, when the model does not have multiple primary keys.
* Removed option `form_excluded_pk_columns_from_unique_validation`
* documentation updated
* example updated
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 )
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 pull request #284 from sumpfgottheit/multiple_primary_keys

Multiple Primary keys for sqla backend