fit grid layout to large desktop in responsive mode

.spanX and .offsetX styles defined in less/grid.less was designed for a container with width 940px, which behaves bad under large desktop where container width is 1140px.

I modified spanX() and offsetX() to work with various gutter/column size, and set gutter size to 24px under large desktop (so that column size will be calculated as an integer, lol).

By the way, I think the first row in a grid should have no margin-top, so I change that too.