Add speed testing. New App workflow

Reimplemented the speed test to make it more accurate. Its currently finding
a balance between preserving the users data and gaining an accurate result.

The app has a new work flow with the main view controller recieving updates
from asynchronous proesses. These are used to update the UI.