Make fileutils substitutable for testing
Start using gomock

gomock is preferred to hand-written mocks because it reduces the
amount of boilerplate code that needs to be written and it results in
mocks which conform to a standard structure and which therefore tend
to be more consistent than hand-written mocks.