Better layout setup

`-reloadData` should only be called once automatically.  This method and behavior is meant to reproduce UITableView's behavior.  Checking `self.buttons.count` seemed like an OK proxy for determining if reload data has been called already.