Task cleanup

Fixed all the async/await warnings, and then all the other build warnings too.
Because this sort of async is pointless. If the user wants to run deserialize in a task, they can do so. Saves having to maintain the code.

Another scenario to consider is running multiple deserializes in one task. Can't do that with the async call, as each call to the async version might run in a separate thread.