How to set a context value
Specifically this line makes no sense to bpy:

row.operator("object.data.use_auto_smooth = False", text="AutoSmooth", icon="SMOOTHCURVE")


The first parameter in row.operator() needs to be a known operator path. That parameter isn't used for setting anything, but merely to identify which operator you want to call.


  If you rightlick the AutoSmooth button in Normals panel, and select Edit Source and open the TextEditor's textblock properties_data_mesh.py, it opens directly at the line used by Blender's UI system to show you how it does the layout.


it shows: 

mesh = context.mesh
col.prop(mesh, "use_auto_smooth")


mesh is available in this context because it's the Mesh Properties panel. If you have a menu elsewhere you'll have to get at it using obj.data.

This assumes there's an (active) object, use a poll in your menu to ensure this.

def draw(self, context):
    layout = self.layout

    obj = context.object
    mesh = obj.data

    split = layout.split()

    col = split.column()
    col.prop(mesh, "use_auto_smooth")
    sub = col.column()
    sub.active = mesh.use_auto_smooth and not mesh.has_custom_normals
    sub.prop(mesh, "auto_smooth_angle", text="Angle")