Update README
Update TODO
Tweak tests a bit
Reorganize backends to use Abstract Base Class
Update README.md with testing instructions
Fix tiny bugs and do minor rearrangements
Minor tweaks - list supported backends