Fixed build output display issues.

On the Cygwin shell, the 'echo' command does not display escape
sequences by default. This issue has been fixed by adding an explicit
'-e' flag to the $(ECHO) variable.

Furthermore, the screen is now explicitly cleared before invoking the
'less' command in the $(LESS) variable.
Added .gitignore rule to exclude the *.log extension.

This was done to stop git from tracking the build.log file.
Included dummy .ignore file.

This file was committed to ensure that git creates an empty bin/
directory during a clone operation.
Fixed build errors.

Some minor changes needed to be made in order to fix the build errors.
These errors were primarily the result of problems in including
dependent files.
Fixed splint issue.

During the 'unstable' build, splint reports an error on parsing
__VA_ARGS__. This problem was fixed by including the '-preproc'
flag to the $(LINT_OPT) variable.
Streamlined usage of underscores.

I use leading underscores to indicate protection level. This is
redundant in implementation files and leads to unnecessary clutter.
Accordingly, I have removed such instances.

Furthermore, I append a serial number to all the unit tests, as there
may be several unit tests for a given interface function. I have added
an underscore before the serial number for better readability.
Streamlined underscores in timer.c.

Continued with the clean-up of underscores. I had missed out on the
timer.c file, and have now resolved that oversight.
Tweaked dedication comment.
Replaced hard-coded unit test descriptions with symbolic constants.
Prettified the implementation of the log test suite.

Missing comments were added, and also made more focused. The hard-coded
unit test descriptions were also replaced with symbolic constants.
Merge branch 'topic-prettify' into develop
Enabled execution of unit tests during the testing build.

The testing build is supposed to execute the unit tests, but this
had been overlooked. I have fixed the issue by calling the driver
and logging the results of the testing process.
Fixed heap memory management unit test bugs.

The driver could not execute because of memory-related bugs in the
heap memory management test suite. The following bugs were fixed:

1. Implementation of kvu_heap_free()
2. copy_01() heap memory management unit test

Furthermore, new unit tests were added, and the comments were tightened.
Merge branch 'develop' into topic-prettify
Improved unit testing implementation.

Earlier, the number of unit tests that passed were being tracked.
A slight performance gain is achieved by tracking the number of
failed unit tests instead. Furthermore, the comments were cleaned
up.
Merge branch 'topic-prettify' into develop
Optimised display of build output.

I am trying to split the build output in two parts: a brief summary
for display within the Quickfix window of Vim, and a detailed report
in the build.log file.

I am trying to restrict the summary view to within 10 lines (the
height of the Quickfix window on my development environment). The
summary view will only show the most important messages, such as
errors and the unit test execution statistics.

The verbose details will be logged to the build.log file for reference
if required.
Merge branch 'topic-makefile' into develop
Introduced logging feature in the unit testing system.

Earlier, the unit testing system only displayed messages to stdout.
Now, it also logs the relevant messages to a specified log file. As
a result, we no longer need to specify the log command in the Makefile
for the driver.
Enabled unit tests of the logging system.

These unit tests had been prepared earlier, but were not enabled.
I have done so now, and also have removed the bugs that were found
on running these tests. Most of these bugs resulted from a mismatch
in the logic between the unit test and the implementation.