A refactored version of callback functions

Squashed commit of the following:

commit 5a8bd7166480791bcaf7f2d2bcd8c3feff8a7834
Author: Julius Pfrommer <julius.pfrommer@web.de>
Date:   Fri Aug 29 10:32:56 2014 +0200

    add logging infrastructure

commit ced1172586d938eae984bb99a6837f278e96d861
Author: Julius Pfrommer <julius.pfrommer@web.de>
Date:   Fri Aug 29 16:55:50 2014 +0200

    inline vtable function definition

commit 086a658a465f9d1c3ee29be7ca492d19e48e35d6
Author: Julius Pfrommer <julius.pfrommer@web.de>
Date:   Thu Aug 28 15:22:51 2014 +0200

    fix travis

commit 84351c098e379f180ef097ace5a20aa3908b3697
Author: Julius Pfrommer <julius.pfrommer@web.de>
Date:   Thu Aug 28 15:18:24 2014 +0200

    clean up build script