How can I improve the topology of this model?
Adding new verticies correctly with the knife tool will sharpen the edges where required. 

Convex corners

See attached (white): X and dissolve the edge but not the vertex (uncheck this option in dissolve edges property box when it appears). 

Concave corners

See attached (red): Cut in the yellow and remove the blue to provide supporting eges.

Knife cut the new verts/edge which will remain as quads not ngons

You will see that the corner is sharp and the sub-d has smoothed the object. 



For the central hole I would set it up as;



For the part you have circled I would work like this:



Everyone does stuff differently this is just my solution

Here it is under 2 subdivisions