Added a module for enumerating accessible SQL tables via vulnerable content providers
Filter out tables and make printing conform to mercury convetion
replace the old_completer variable in the cmd.Cmd extension with a completer stack, which allows us to push new readline contexts at runtime
pass a pair of callbacks into a module (from the console) that allow the module to push/pop readline contexts

we must keep track of these contexts to make sure that we can clean up after the module if it doesn't
provide placeholders for the push_ and pop_completer, and a empty completer
add a PoC of switching readline contexts in a module; using the shell.start command
fixing a bug where history files would be merged in some situations
move the .mercury_history file into a user's home folder
when running a command, do not use argparse to detect the -h/--help switches, this allows us to be more specific about the arguments we expect
removing some more specifications of optional argument that aren't
for convention, wherever an argument is optional we will use a switch rather than an optional positional argument
creating a model that can read an ArgumentParser object, and offer context-sensitive completion suggestions for readline
integrating the ArgumentParserCompleter with module.Base, and provide a new callback for modules to override to provide completion suggestions
updating the Mercury tools.file.* modules to use the new completion api
adding auto-completion to commands where we build an intent
fixing some of the usage information in app.provider.*, which was woefully unhelpful
adding a couple of unit tests for the argparse_completer
add permissions to the auto-completable attributes, using a list of default permissions
add path completion to the scanner.misc.{readable,writable}files modules
add a mercury-complete script that exposes the ArgumentParserCompleter from the Console/SSLManager classes to bash_completion