Merge upstream doorkeeper into modified-doorkeeper

Mainly in order to get token revocation endpoint. Tests passing.