Test using a fake correct functioning server

One that acts mostly to mqtt spec
Refactor out boilerplate
Change 'mark as disconnected' test
Simplify ping timer test
Add reconnect test