PCT-764: Bad data file causes agent to stop sending but keep spooling data

* Remove, don't send empty data files (PCT-764)
* Stop sending after 3 errors of any kind.
* Fix ws client and how data.Sender and log.Relay use it.
* Increase and improve testing in log, data, and agent.
* Add trash to basedir and data.Spooler.Reject (not used yet).
* Fix pct.WaitStartLock().
* Add pct/Cmd.
Global and singleton? Why RealCmdFactory is not properly injected into `NewAgent`?