Check if same class is added multiple times
Print stacktrace at fatal errors
Feature, handle external logger

Most applications has their own logging functionality, so basium
can now use that instead of the built-in
Check so start() isn't called more than once
driver select() returns iterable object avoiding large temporary lists. optimized model instance init

removed duplicated init in basium_model, merged two loops
added iterators for common loops