End has abort semantics when transaction blocked.

The end() command now aborts a transaction if it is sent while the
transaction is in the blocked state. This is a special case that
violates the assumption that blocked commands will receive no new
commands (queue length is 1). The use case for this behavior is aborting
an active transaction so that some other blocked ones can proceed. In a
real application, this could be an abort by the client after some
timeout.

Also fixed the project URL in setup.py.