Merge pull request #103 from lavelle/mockfs

Switch to mock filesystem for testing
lint json in lint task
Merge pull request #104 from lavelle/more-tests

Add more test cases
Merge pull request #108 from lavelle/jsonlint

Lint JSON in lint task
refactor out chrome mock
Merge pull request #107 from lavelle/chromemock

Refactor out chrome mock
test directory overwrite
test for rejecting directory delete without recursive flag