add-grid(): enabled appending to arbitrary grid lists, refactored for DRY, documented

1) Added an optional argument `$append-to-list` that is used as a source list for appending. This makes possible using add-grid() to assemble arbitrary grid lists in the global section of a project and then assigning any of them to $grids in partials of the layout section.

The optional argument defaults to $grids, so this change does not alter the original behavior of the function.

2) Refactored the code to remove duplicate expressions and make it much more readable.

3) Documented the function and every part of it with well-written comments.

The diff does not apply syntax highlighting, so please have a look at the modified file instead:

https://github.com/lolmaus/Singularity/blob/7ee7f5a39733a7c793087aa860666fe79f91e423/stylesheets/singularitygs/grids/_add.scss