Add tests, abstract filesystem

Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>
Add travis config

Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>