With the four functions in a game_state: Enter(), Leave(), Update(), Render(). Would you handle input in the update() function which would delegate it out to the objects in that state? Like the player or a button/ menu / piece of interface?
Inputs are handled per update and is much more complex than that.
Since you're using a existent library and have no idea of how handle it, just handle it on the beginning of each logical update. Make sure to have some kind of keyboard class that owns the state of the keyboard (which keys are up, down, etc.).
I believe SFLM already does it internally, so you can consider using the existing keyboard class.
I also would recommend not handling input directly on the player class. Instead, on each game state update you ask for what inputs. Key "A" is down? Make the player move in the direction that you want; do not mix SFML with your game objects. The game state can know what SFML is, not the game object.
The game-state drives the game logic for the moment (you don't have a scripting system yet).
Also, where would you create the game objects? As public members of the game class?
The game objects need to be created in the class that is managing the game objects. I'd recommend to create on the game-state or the scene.
The game class it is only a state machine, and the game calls: stateMachine.Update( this ), the this pointer is the game itself.
As for scenes, would they only contain data about the game world like the player position, items the player has, world size etc. If there was a pre-made level made of a grid of tiles, would that all be loaded in in the same file?
Well, the scene doesn't actually need to contain the player information in a more well designed architecture, but since you're beginning it actually doesn't matter because you won't get a 100% system anyway. Don't worry, you're not following a bad approach. The levels are:
Game-State (high-level)
Game (high-level)
Scene (high-level)
SFML (low-level)
The first three are on the high-level layer, so, over-engineering may be not a good idea on the beginning in order to get the same levels (dividing a scene and a game).
Player information to a scene is generic information. The scene would contain the sprites that are actually fixed in the game (the ambient, etc.). The game would contain the player information that is persistent across the game like score, number of tries, etc.
A game has a state machine that drives the game itself;
The game-state machine has game-state objects—one of time, or a stack of states.
The GamePlay state has the player, the scene (or more).
That said, you need to implement a game-state machine. Read this article and be happy.