Add coverage report badge to README

Display dynamic test coverage status badge icon generated by the
coveralls service.
Ensure main decorator returns original function

When deocrating a function as the main function, ensure that the
function being decorated is not lost.
Add missing unit tests for vendored funcsigs

Unit tests for annotation formatting for the vendored copy of the
funcsigs module are now included.
Remove use of sys.atexit to call main funciton

As functions registered with sys.atexit are intended be called as the
interpreter is shutting down, various modules and interpreter services
may already be unloaded when the function is called. This makes it a
fragile way to call main functions.

Instead the method of stack inspection is used to determine if a
function is being defined in the __main__ module and executed
appropriately.