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
Merge branch 'multiple_primary_keys'
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'
Merge pull request #290 from bergundy/master

bugfix: inline form 'new' template - now submits all added fields correc...
fix url_relative_path error on windows
make upload path auto
fix pic save incomplete
fix 'thumb image return none error'
remove an extra 'return' token
fix dynamic gif thumb error
remove debugging print ..
Merge pull request #284 from sumpfgottheit/multiple_primary_keys

Multiple Primary keys for sqla backend
a logic bug
Fixed wrong creation of select2tags components.

Now users can supply data to the attribute "data-select2-tags" to provide
existing tags.
Merge pull request #293 from jyelloz/fix_select2_tags

Fixed wrong creation of select2tags components.
666 -> 0o666
Merge pull request #291 from lanybass/master

upload images problem
Wording
Merge remote-tracking branch 'upstream/master'
Cleaned up JS a bit
AJAX foreign key loading for SQLa backend