Зачем нужно так много div'ов в html для верстки сайта?
Ну это как бы негласные правила, чтобы другому верстаку было понятно )) wrapper - это значит обёртка. *-inner это значит внутренний основной блок, в котором уже будет лежать все остальное. Как правило он имеет фикс ширину. container - это тоже свого рода обёртка, это название пошло от bootstrap наверное ))
Дополню предыдущие ответы. С пояалением 5 стандарта, это стало плохим тонйом. Даже в 
 стандартах w3 говорится об этом