Add api documentation and code improvements.
Move runtests_with_coverage.sh to scripts directory.
Update gitignore file.