initial checkin
Removed dead code which was there for testing purposes
Fixed minor typos in a comment
Made the firefox_profile_directory an optional argument
Gave the profile directory to not make it load it a second time
Added an option to define the Firefox Profile directory and not detect it automatically
merged the optional directory branch as it works
Fixed the removal of the "Decrypted: " prefix of the password returned by pwdecrypt
Added (untested) password functionality
Added a configurable loglevel
logging: fixed a typo in loglevel configuration for the logging module
Adding logging to the decrypt process
Added detection of wrong password
Using libnss directly to recover the passwords

This is a big struggle and still one cannot decrypt password protected
databases. It's mainly inspired by a tool called "ffpwdump".
The calling options are a bit weird, but it will print an explanatory
text the way it is right now. One could certainly refactor that into the
program description and such a change would be very welcome.

It works well with unprotected databases and is very fast compared to
the other solution which needs to call out a lot. However, password
protected databases won't work because I don't know the proper API and a
quick look into sdrtest didn't help me. Mainly because they use SECU_*
functions which the libnss3.so on my system doesn't have.
Made it work with password protected directories

Finally, I found how to do it. It took quite a while. To my surprise
PK11_CheckUserPassword would also authenticate for the future. So we use
that function to not only test whether we need a password, but also to
open the encrypted container.

I tried various other methods like ChangeUserPassword or
SetPasswordFunc, but none of them would work. Plus it was a big hassle
using ctypes correctly. I am glad that it finally worked out so easily.
Commented on get_default_firefox_profile_directory and introduced dir param

We may want to enable Thunderbird password recovery with a "-t" switch.
To prepare that, we make the directory detection more flexible.
Gave it -t, to automatically fetch Thunderbird passwords

It's not necessarily beautifully solved, but it works well enough.
Added an idea to compute the query in get_encrypted_sites

It is not necessarily nice to hard code that query. But it's done anyway
and explicit is better than implicit so we let it reside.

Should the schema change at some stage, we can get rid of the hard coded
query and use the computed one.
Added comments and unified the coding style a bit

Some code came from fwpwdump and consistently doesn't adhere to any
standard. I just unified things a bit and commented on some functions.
More error logging

I actually don't know whether it works the way it's intended. Libnss isn't a fun library to work with :-(