Add more thorough clean rules
Add file backend test an fix any bugs it uncovered
Merge branch 'feature-file-backend-tests'