Finish extended hash modes

* Add an extended parameter to the HashMode namedtuple.
* Add description to the argparse option.
* Pass extended output configuration to writeResult().

Usage:

```
$ python hashid.py --all d41d8cd98f00b204e9800998ecf8427e:asdf
Analyzing 'd41d8cd98f00b204e9800998ecf8427e:asdf'
[+] md5($pass.$salt)
[+] md5($salt.$pass)
[+] md5(unicode($pass).$salt)
[+] md5($salt.unicode($pass))
[+] HMAC-MD5 (key = $pass)
[+] HMAC-MD5 (key = $salt)
[+] md5(md5($salt).$pass)
[+] md5($salt.md5($pass))
[+] md5($pass.md5($salt))
[+] md5($salt.$pass.$salt)
[+] md5(md5($pass).md5($salt))
[+] md5($salt.md5($salt.$pass))
[+] md5($salt.md5($pass.$salt))
[+] md5($username.0.$pass)
[+] Domain Cached Credentials
[+] mscash
```

```
$ python hashid.py -a da39a3ee5e6b4b0d3255bfef95601890afd80709:asdf
Analyzing 'da39a3ee5e6b4b0d3255bfef95601890afd80709:asdf'
[+] sha1($pass.$salt)
[+] sha1($salt.$pass)
[+] sha1(unicode($pass).$salt)
[+] sha1($salt.unicode($pass))
[+] HMAC-SHA1 (key = $pass)
[+] HMAC-SHA1 (key = $salt)
[+] SMF ≥ v1.1
```