Implement checks for different iteration counts in loaded hashes

The format interface version FMT_MAIN_VERSION had to be bumped
to 12, to add new format methods returning iteration counts
for a given salt.
Even though hardly any format will need to report more than one
iteration count, the format interface has been extended by
an array of functions, just to avoid the need to bump the format
version again if we ever need to report a second iteration count
for a format. Another reason is that I don't want to touch
all the other (several hundred) formats again if one or two
formats need to report more than one iteration count.
So far, only format method iteration_count[0](void *salt) is used.

Furthermore, currently bcrypt is the only format reporting
a real iteration count.
All the other formats still use fmt_default_iteration_count which
just returns 1.
(Those salted formats which support a configurable iteration count
will be adjusted in a later commit.)

Currently, john checks whether the loaded (uncracked) hashes
use different iteration counts. If this happens, john prints
a warning (to stdout and into the log file), mentioning
the minimum iteration count and the maximum iteration count.

$ cat bcrypt.hashes
$2a$08$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW
$2a$07$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK
$2a$06$XXXXXXXXXXXXXXXXXXXXXOAcXxm9kjPGEMsLznoKqmqw7tc8WCx4a
$2a$04$CCCCCCCCCCCCCCCCCCCCC.7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy

$ ./john --fork=2 bcrypt.hashes --wordlist
Loaded 4 password hashes with 4 different salts (bcrypt [Blowfish 32/32 X2])
Loaded hashes with varying # of rounds (from 16 to 256)
Node numbers 1-2 of 2 (fork)
Each node loaded 1/2 of wordfile to memory (about 12 KB/node)
Press 'q' or Ctrl-C to abort, almost any other key for status
1 0g 0:00:00:09 5.41% (ETA: 21:37:40) 0g/s 9.582p/s 38.73c/s 38.73C/s justin..knight
2 0g 0:00:00:09 4.85% (ETA: 21:37:59) 0g/s 8.519p/s 34.68c/s 34.68C/s cricket..dallas
2 0g 0:00:00:12 6.31% (ETA: 21:38:04) 0g/s 8.607p/s 34.42c/s 34.42C/s test..tommy
1 0g 0:00:00:12 6.88% (ETA: 21:37:48) 0g/s 9.360p/s 37.90c/s 37.90C/s booger..christin
Waiting for 1 child to terminate
Session aborted

$ head -n 25 john.log
1 0:00:00:00 Starting a new session
1 0:00:00:00 Loaded a total of 4 password hashes with 4 different salts
1 0:00:00:00 Loaded hashes with varying # of rounds (from 16 to 256)
1 0:00:00:00 - Node numbers 1-2 of 2 (fork)
1 0:00:00:00 - Hash type: bcrypt (lengths up to 72)
1 0:00:00:00 - Algorithm: Blowfish 32/32 X2
1 0:00:00:00 - Candidate passwords will be buffered and tried in chunks of 2
1 0:00:00:00 - Configured to use otherwise idle processor cycles only
1 0:00:00:00 Proceeding with wordlist mode
1 0:00:00:00 - Wordlist file: ./password.lst
1 0:00:00:00 - loaded this node's share of wordfile $JOHN/password.lst into memory (13239 bytes of 26325, max_size=5000000 avg/node)
1 0:00:00:00 - wordfile had 1780 lines and required 7120 bytes for index.
1 0:00:00:00 - suppressed 7 duplicate lines and/or comments from wordlist.
1 0:00:00:00 - No word mangling rules
1 0:00:00:00 Starting a new session
1 0:00:00:00 Loaded a total of 4 password hashes with 4 different salts
1 0:00:00:00 Loaded hashes with varying # of rounds (from 16 to 256)
1 0:00:00:00 - Node numbers 1-2 of 2 (fork)
2 0:00:00:00 - Hash type: bcrypt (lengths up to 72)
2 0:00:00:00 - Algorithm: Blowfish 32/32 X2
2 0:00:00:00 - Candidate passwords will be buffered and tried in chunks of 2
2 0:00:00:00 - Configured to use otherwise idle processor cycles only
2 0:00:00:00 Proceeding with wordlist mode
2 0:00:00:00 - Wordlist file: ./password.lst
2 0:00:00:00 - loaded this node's share of wordfile $JOHN/password.lst into memory (13056 bytes of 26325, max_size=5000000 avg/node)