One pin, five buttons
Select, Left, Up, Down and Right all share analog pin A0. Each button puts a different resistor in the path, so analogRead(A0) returns a different value depending on which one is down: roughly 0 for Right, about 100 for Up, 250 for Down, 400 for Left, 640 for Select, and over 1000 when nothing is pressed. The reset button is wired to the board's reset and is not readable.
The read_LCD_buttons() function checks the reading against those thresholds from the smallest up and returns a named button. The values used here are for the v1.1 shield, which is what ships in the pack; a v1.0 board uses slightly different thresholds (in the comment) if Select ever misbehaves.
Cursor positions
lcd.setCursor(column, row) is zero-based: (0, 1) is the start of the second line, (9, 1) is ten characters in. Printing does not clear what was there before, so when the text you print can be shorter than the last thing you printed, pad it with spaces ("RIGHT " not "RIGHT") or you will see leftovers.
The optional LCDKeypad library in the Resources tab does the same job with lcd.button() and adds a debounced lcd.buttonBlocking() for menus.