Enable easier control of borders in block lists

Previously, block-list's bottom borders were defined on the bottom `<li>` element. This meant that it was difficult to remove the top and bottom borders from a block list.

This change uses the adjacent sibling selector to limit `<li>` element's borders to 'internal borders', and defines the bottom 'external border' on the `.block-list` element (`ul`/`ol`) like the top 'external border'.

This allows you to easily do things like this:

.block-list--noborders {
    @extend .block-list;
    border-top-width: 0;
    border-bottom-width: 0;
}

or 

.block-list--allborders {
    @extend .block-list;
    border-width: 1px;
}

Which would previously have lead to double borders (or required changing the borders of `<li>` elements).