add index attribute to Recipe

- add test case to test recipe
assign indices based on md5sum hash of source file

only if not given in source recipe
Merge branch 'feature/index' into develop
move kit-related modules into own package

- factor out main program logic into ".kit.main" module
add List (ls) command

this also changes the behavior of Search, printing the index regardless if it
is set to None or not. This should be indistiguishable from previous behavior
since all recipes had indices.
fix a missing sys import
factor out recipe selection logic into Registry
add `paths` property to registry

stores mapping of keys to paths
add `kit edit` command
print program name before error messages
Merge branch 'feature/edit' into develop