remove useless flag -Wno-unused-function
add setup and tear down functions to test suite
implement optional user supplied setup and tear down functions
Merge branch 'setup-teardown' into develop