makefile: added 'clean' target
makefile: fixed shell
fzsl:  expand the scanner

Expand the scanner object more so that we can start working on using
config files to define multiple scanners.
fzsl:  move main ui wrapper to bin wrapper
fzsl:  add support for user configuration of scanning rules

resolves #1
setup:  move fzsl.bash to etc
fzsl:  select scanning rule from command line

also fix a couple of print statements for python3
scanner:  add result caching

Add ability to cache results of a scan such that they can be used again
in later runs where the user knows that no relevant new files have been
added.

resolves #2
ui:  add keys to force rescan
ui:  handle lack of results being matched
fzsl:  more docstrings
scanner:  support a full shell for commands

Support a full shell for both the detection and scanning commands.  This
will allow much more complex configuration to be stored in the fzsl.conf
file rather than being separated out.

Resolves #13
bash:  make binding optional
bash:  allow user configuration of binding

Wrap the binding of fzsl inside of __fzsl_bind_default_matching and also
allow the user to specify the readline code to bind to.

Finally, switch to ctrl+p by default to prevent carpal tunnel.
bash:  add fzcd, fuzzy change directory
fzsl:  use setuptools for packaging

resolves #11
fzsl: fixup default config

Find the system config rooted at sys.prefix and use ~/.config/fzslrc
instead of ~/.config/fzsl so the latter directory can be created for
caches if the user desires.
dev:  fixup dev environment

- add dev-install target to makefile which builds an sdist and then uses
  pip to install it in the virtual environment.
- dev-env.sh uses the virtual environment instead of source files.
etc:  add git-submodule example
fzsl:  break Scanner API from implementation

Separate the config rule based scanner from the expected scanner API.
This makes it clear that the Scanner class is meant to be extendable.