util: implemented parent_folder(path)
tests: implemented recursive conf.config generation function
dirscanner: improved functions for returning smfiles, sources and targets
dirscanner: functions for associated file (sm)files implemented
conf: never ever use fucking lists/dicts as default function param value again pls
util: relpath modified to meet exspected behavior

this fixes the following problem:

after setting the smroot:
util.set_smroot('./lol')

util.smpath creates faulty results:
you'd exspect this:

a = util.smpath("./lol/rofl/pwnfile.c")
a == '^/rofl/pwnfile.c'

as the same ./lol prefix is replaced by the smroot symbol

but, befor this commit, the result was:
a == '^/lol/lol/rofl/pwnfile.c'

this happens because the internal call of abspath("./lol/rofl/pwnfile.c")
replaces the "relto" parameter with it's real ^ location, './lol'

and as the ./lol/rofl... path is then interpreted as relative to ./lol,
the resulting path is ./lol/lol/rofl/pwnfile.c

this needs a better fix...
conf-smfile: added get_associated_smname functions

example:

target-smfile = roflkopter.so.target.smfile.py

get_associated_smname() == roflkopter.so

==> it returns the prefix (filename) of the configured file
builder: removed uses-usedby entry generation