Add fail2ban persistent data storage

In relation to #2 and #30. Also could be used to support recidive and xarf/blocklist.de, as database stores all matched lines.

Needs some polish and some documenting, but thought I'd raise pull request to gain some comments and feedback.