Bootstrap avl_tree project.

data_structures/avl_tree/
	-Add boilerplate (source) files/directory structure to the AVL
	tree project.
Compile in binary_tree, add func prototypes.

data_structures/avl_tree/makefile
	-Compile in the `binary_tree` project, which exposes
	`BinaryTree_Tree_t` data structure that `AVL_Tree_t` will rely
	on.
	-Add necessary compiler flags, etc.

data_structures/avl_tree/src/avl_tree.h
	-Add prototypes for all necessary functions.
	-Declare `AVL_Node_t`.
Add test module, def AVL create()/free().

data_structures/avl_tree/src/avl_tree.(c, h)
	-Define `AVLTree_create()` and `AVLTree_free()`.
	-Change `AVL` function/struct prefix to `AVLTree`.

data_structures/avl_tree/src/test.c
	-Move compiled executable's entry point to a unit-testing
	module.
Compile in libtap, define _test_create().

data_structures/avl_tree/src/test.c
	-Include the `tap` lib, makes its minimal necessary function
	calls.
	-Define `_test_create()`, a unit-test for `AVLTree_create()`.
Document AVLTree_create(), AVLTree_free().

data_structures/avl_tree/src/avl_tree.h
	-Write documentation comments for `AVLTree_create()` and
	`AVLTree_free()`.
Add compareData() to AVL/binary tree structs.

data_structures/avl_tree/src/avl_tree.(c, h)
	-Add a `compareData()` function to `BinaryTree_Tree_t()`.

data_structures/binary_tree/src/binary_tree.(c, h)
	-Set `BinaryTree_Tree_t.compareData` in `AVLTree_create()`.
Define and document AVLTree_insert().

data_structures/avl_tree/src/avl_tree.(c, h)
	-Define and document `AVLTree_insert()`; does not yet support
	auto-balancing.
Add unit test for AVLTree_insert().

data_structures/avl_tree/src/test.c
	-Define `_test_insert()`, to test `AVLTree_insert()`.
	-Define helper `_saveTraversedData()`.
Redefine AVLTree_insert() to call _insertRoot().

data_structures/avl_tree/src/avl_tree.(c, h)
	-Split `AVLTree_insert()` into a second function, `_insert()`,
	which implements the actual recursion that inserts a data item.
	-Add a conditional call to `BinaryTree_insertRoot()` to
	`AVLTree_insert()`.

data_structures/avl_tree/src/test.c
	-Update `_test_createDataItems()` accordingly.
Redefine AVLTree functions to use AVLTree_Node_t.

data_structures/avl_tree/src/avl_tree.c
	-Define and document `_createNode()`.
	-Redefine `AVLTree_insert()` and `_insert()` to wrap raw `data`
	in an `AVLTree_Node_t`, instead of passing it directly to the
	underlying `BinaryTree` functions.

data_structures/avl_tree/src/test.c
	-Modify `_printData()` and `_saveTraversedData()` accordingly.
Add balance factor updates to _insert().

data_structures/avl_tree/src/avl_tree.c
	-Define and document helper `_abs()`.
	-Update `AVLTree_Node_t.balanceFactor` in `_insert()`.
Define _rotateLeft() and _rotateRight().

data_structures/avl_tree/src/avl_tree.c
	-Define and document `_rotateLeft()` and `_rotateRight()`; not
	yet integrated into `_insert()`.
Integrate rotations into _insert().

data_structures/avl_tree/src/avl_tree.c
	-Integrate LL, LR, RR, and RL rotations in `AVLTree_insert()`,
	using `_rotateLeft()` and `_rotateRight()`.
Fix right insertion bug in AVLTree_insert().

data_structures/avl_tree/src/avl_tree.c
	-Fix a right-insertion bug in `AVLTree_insert()`: an incorrect
	conditional check caused an RR/RL rotation to be performed when
	the other was required.
Fully debug rotations.

data_structures/avl_tree/src/avl_tree.c
	-Fix some incorrect statements in `_insert()`.
	-Move balance-setting from `_rotateLeft()`/`_rotateRight()` to
	`_insert()`, because it only applies to LL/RR rotations and not
	LR/RL rotations, and the latter two use those functions.
Clean up AVL unit-tests, add content to README.

data_structures/avl_tree/README.md
	-Add an overview of the project's contents.
	-Document `make` targets.
	-Add code demonstrating example usage of the `AVLTree` module.

data_structures/avl_tree/src/test.c
	-Remove `_printData()`, which was used purely for manual
	testing.
Merge branch 'data_structures/avl_tree.rotations' into data_structures/avl_tree

data_structures/avl_tree/src/avl_tree.c
	-Implement rotations in `_rotateRight()`, `_rotateLeft()`.
	-Integrate them in `_insert()`.
Merge branch 'data_structures/avl_tree' into develop

data_structures/avl_tree/
	-Implement an AVL tree.