I was mistaken. "owner" is a property of every node, so you can't declare it as a variable. "owner" is preset when the node is already attached in the scene tree. So, your State class (extending Node) should also have an owner, but only if you've already added it to the scene tree.
If Idle and Walk are States, then I think their owner should be StateMachine (their parent). StateMachine's owner should be your Player. So you might have to say
player = owner.owner
to get the player node. Or, you could just assign it with
player = get_node("/root/Player")
which is the way I'm used to doing it.
Edit: No, I'm wrong again. After a little testing, I found that owner is set to a node's parent's owner when you add a child node. So, Idle and Walk should have the same owner as StateMachine, which ought to be Player. I'm pretty sure that "/root/Player" will always work, though there's probably a better way to do it.
Edit 2: Actually, since your Player is a scene that will be added as a node, even "/root/Player" probably won't work. You'd have to use
player = get_parent().get_parent()
which is pretty ugly.