Improving tests

Some changes on `skip_unless` and Flask-SQLAlchemy testing. 

* `skip_unless` now handles correct decoration of classes;
* After applying `skip_unless`-related changes some tests started to fail (because they started to execute). After some invastigation I have found that using both *default sqlalchemy* and *Flask-SQLAlchemy* sessions is not so obvious.
The whole thing was that Flask-SQLAlchemys' class `SQLAlchemy` registered some global handlers for session signals. This was the reason of test failures. So, I've added unregistering this handlers on `tearDown` in all Flask-SQLAlchemy tests.