Add new exception that is raised when table has no PKs

Apparently in SQLAnywhere, you can have a table that has no primary keys, and when it tries to load a table with no primary keys (like through reflection), then in SQLAnyDialectget_pk_constraint(), it threw an uncaught TypeError because in the first sql statement, it tries to get the primary keys, which returns None, and then in the second sql statement, it tries to use the nonexistent result. This commit adds a new Exception class, SQLAnyNoPrimaryKeyError, which is thrown if this condition arises, because it makes no sense to be using something like sqlalchemy with tables that have no primary keys. I'm not sure if i'm supposed to be using sqlalchemy.exec.DBAPIError, but there is no documentation or examples on when or how that is thrown, and through the code, it seems that the Engine takes care of that, but its not expecting a reflection call to fail, so its not doing a "try except Exception: raise DBAPIError()" like it does in other places.
Make it so SQLAnyDialect supports Decimals natively.

Before, the magical property "supports_native_decimal" was not present in the Dialect class, so sqlalchemy would load the dialect, and see that the property is not present, so its assuming the database is returning Numeric/Decimal types as a python float. However, looking in the python sqlanydb.py module which this uses, it seems the C library that sqlanydb is interfacing with only returns values as Strings, Binary, Doubles, and Integer types, and any other type is probably returned as a string.

So what would happen is that sqlalchemy is expecting a float from the database, but sqlanydb was giving it a string. As a result, you would get a nasty warning saying "Dialect sqlany does *not* support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occur.", followed by an exception saying "a float is required".

This commit simply uses the (undocumented...) sqlanydb function to register converters for values returned by the database. I also moved the sqlanydb import to the top of the module, as you can't register the converters till the module is imported, and no reason to delay the import since if you are using this, then you are going to have to load the module eventually...