Isolates logging behind a fail method API

- moves usage of stlib log to log.go and uses main.fail func to log
  failures
- enables the future ability to log code for debugging purposes reserving the
  ability to disable logging as a default