Store user_webdavauth users in DB + code cleanup

This commit introduces the storing of user_webdavauth users in the database which is a pre-requisite of https://github.com/owncloud/core/issues/12620. 

Furthermore, I refactored the code and removed deprecated code, as a little gimmick I added unit tests for the backend. - Especially considering that some people are using this as reference implementation for an authentication backend I consider it important that this backend follows best-practises. (still not perfect - but way better)

@MorrisJobke Please review.

@karlitschek Thought you might like that since you created that app. Care to review as well? - Don't worry, most of the change are unit tests :-)
@MorrisJobke @DeepDiver1975 I wanted to mock `bindValue` also in the tests. But somehow it never worked. Any idea?  - I just noticed that it is not really within the defined class and is just annotated: https://github.com/owncloud/core/blob/8fd90e04b62c10a48ac15a3a52f7cd6b4040359d/lib/private/db/statementwrapper.php#L9-L17

Any idea?