Smooth shading / Sub Surface / Distorted render
Sorry I didn't have time to give you a formal answer yesterday.  

For the Smooth Shader part of the question, it's as simple as using the Auto-Smooth option.  Play with the angle setting to get the effect you want:


Essentially, though, your main question is a matter of workflow.  The Remesh Modifier is a bit unpredictable, but you could try it.  Other than that or doing it by hand, there's really no way of fixing the issue without redoing at least part of your mesh.  

The problem with the Subdivision Surface Modifier is that it's meant to be applied to quads or tris.  In your case, you have a few ngons wrapped around multiple cavities and protrusions.  Ngons, at least as it applies to Blender, are faces having more than four edges.  Even if it just has five edges, SubSurf still won't work correctly:







So you have a few options.  Before you ever begin to design your piece, make allowance for the above if you plan on using SubSurf.  You might even consider using high density meshes in place of SubSurf to begin with.  That way you're not relying on an "after" algorithm to modify your mesh.  Of course, the only problem with that approach is file size and complexity.  If you were 3D printing something, this would be the way to go:



You could apply the SubSurf before you make your knife cuts, but again it's added geometry, file-size, and complexity:



Normally, Subsurf works great.  The problem with your particular example is the cuts you made into the mesh.  Once you make a cut into a quad, most of the time you're gonna be left with an ngon.  So here's a solution that will keep you from having to go back to the drawing board and will also allow you to keep using SubSurf without applying it.

1.) Delete that whole top flat face.







2.) Select all the cylinders (and cones) and press P to separate them into their own object:







3.) Next, Alt select the inside rim and press E to extrude and S to scale toward the middle.  Press Alt + M to merge the vertices at the center.  You now have a triangle fan mesh:







Now add the Boolean Modifier to the casing and select the cylinders that you separated in step 2.  Select the Difference operation type.  You may have to raise the cylinders up until they just crest the plane of the casing.  Now Restrict the original cylinders from View and Render (but don't delete them).



The reason this works is because modifiers are applied in order starting with the top first.  In this case, we're edge-splitting, sub-dividing, and then using the Boolean mod.  This allows you the benefit of unapplied subdivision and Boolean simultaneously.

Finished product with no modifiers applied: