Terminology fix

There was a mix of concepts where the word "cell" was applied both to the minimal piece of grid and to the area, which window occupies.

The latter one is renamed to the "frame definition" in code and comments now

additionally, names of local variables are changed a bit to better reflect their purpose
Do not add margins on the edge of screen
try enlarge to other direction, if main exhausted

before the patch:

    step 0: [ ] [X] [ ]  -- initial
    step 1: [ ] [X] [X]  -- expand to the right
    step 2: [ ] [X] [X]  -- can't expand anymore

after the patch

    step 0: [ ] [X] [ ]  -- initial
    step 1: [ ] [X] [X]  -- expand to the right
    step 2: [X] [X] [X]  -- expand to the left
fixed up/down movement

they respect grid-height now
Margins at screen-edges are conditional

introduced `mjolnir.sd.grid.MARGINS_AT_EDGE` variable, which defaults to `true` (to preserve old behaviour)
Merge pull request #5 from indeyets/smart_adjust

Smarter adjustment of sizes