which shift register to buy?

the de-facto si-po shift register is the 74hc(t )595
the (t ) is the difference between cmos and ttl level; double check for what you're using.

There's also the chips from Maxim (max) which are more expensive but have a lot of integrated features.

As for reading buttons; I can't recommend a parallel in-serial out.