Revert remote config when export fails.

Now when the export fails, the local git repo is reset, and
this old config is exported again.

This is important, because previously when we had an error, the local
repo would be reset, but the bind server would be stuck with falsy
config.

It is important to note that we test with rndc-checkconf before
syncing with the server. Thus, if we have any problem locally, we
can just reset the git repo, since no info was sync to server.

The server info is sync to the last valid commit ONLY IF anything
was already sent on this export. This happens if we have an excetion
AFTER the sync_remote method call.
utime only changes the date of actually modified files.

Now the utime call is done only for actually modified zonefiles.
If a domain wasn't updated since the last commit, it's utime isn't
modified.

Note1: For this feature to work, the button 'export' must be used.
  If one uses the 'export all' button, *all* zonefiles are considered
  modified, and utime is called in all of them, therefore.

Note2: it prevents a previous feature that was documented on this
  comment (that was removed as well):

  """
  (...) update 'mtime' of *all* non-slave domains, so that we may use
  the mtime as a criteria to identify the zonefiles that have been
  removed from BIND's config.
  """