Add .gitignore; singly_linked_list project.

data_structures/singly_linked_list/*
	-Add project directory for a singly-linked-list implementation,
	with a proper directory structure and foundation files.
Add s-l-list header w/ declarations.

src/singly_linked_list.h
	-Add a header with several key function declarations and macros.

src/singly_linked_list.c
	-Add empty definitions of said functions.
Define createSLList(), freeSLList(), freeSLNode().

data_structures/singly_linked_list/src/singly_linked_list.(c, h)
	-Add definitions and documentation for `createSLList()`,
	`freeSLList()`, and `freeSLNode()`.
Define SLNode create/insert/remove operations.

src/singly_linked_list.(c, h)
	-Define `createSLNode()`, `insertAfterSLNode()`,
	`removeAfterSLNode()`, `insertSLListHead()`, and
	`removeSLListHead()`.
	-Add `testSLList()` for testing purposes.
Add debug recipe; revise node-removal functions.

src/singly_linked_list.(c, h)
	-Revise `removeSLListHead()` and `removeAfterSLNode()` to return
	the removed `SLNode_t`'s `data` instead of the nodes themselves.

src/singly_linked_list.h
	-Add documentation for `insertSLListHead()` and
	`removeSLListHead()`.
Add test.c; move SLNode_t from global scope.

src/(singly_linked_list, test).c
	-Add `test.c`, to contain any functions used to test those in
	`singly_linked_list.c`. Move `testSLList()` and `freeData()` to
	the new file.

src/singly_linked_list.(c, h)
	-Remove the `SLNode_t` definition from global scope.
Add printSLList(), complete test.c documentation.

src/test.c
	-Add documented `printSLList()`.
	-Add header documentation, and reorganize the order of `static`
	function declarations.
Add test functions; account for edge cases.

data_structures/singly_linked_list/src/test.c
	-Complete `printSLList()`.
	-Add calls to `testSLList()`.

data_structures/singly_linked_list/src/singly_linked_list.*
	-Expose `SLNode_t` to global scope again, because its members
	may need to be accessed by functions like `printSLList()`.
	-Account for the use of `SLList_t::tail` in
	`removeAfterSLNode()` and `insertAfterSLNode()`.
Add removeSLNode().

data_structures/singly_linked_list/src/singly_linked_list.(c, h)
	-Define and document `removeSLNode()`.
Add insertAtIndex().

data_structures/singly_linked_list/src/singly_linked_list.(c, h)
	-Implement and document `insertAtIndex()`.
Add removeAtIndex(); complete SLList_t.

data_structures/singly_linked_list/src/singly_linked_list.(c, h)
	-Implement and document `removeAtIndex()`.

data_structures/singly_linked_list/src/test.c
	-Revise contents of `test()`: make test-strings allocations
	cleaner by moving all of the pointers to an array, and add calls
	to test `insertAtIndex()` and `removeAtIndex()`.
Merge branch 'feature/data_structures.singly_linked_list' into develop

data_structures/singly_linked_list/
	-Implement a singly-linked list.