Allocate track array exponentially

This reduces the frequency of reallocations.
Remove some ass_msg() calls

These aren't very useful for debugging due to the high volume of the log
output in problem cases. In fact, all they do is making the code slower
(the message callback can easily appear in the profiler output, even if
the callback doesn't actually print the messages).
ass_strtod: use modern C
build: add more warnings
Start \k, \ko at exact start time, not right after it
fontconfig: don't compact the sorted font list

Some broken fonts are dropped by Fontconfig during compacting.
Merge pull request #28 from astiob/compat

Fix \k starting time and incorrectly skipped fonts
Simplify hash function

We can rely on fast multiplication and good compilers.

v2: use default FNV-1a prime

Signed-off-by: wm4 <wm4@nowhere>
Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
Append new cache items at the start of the collision list

The idea is that more recently-added cache items are more likely to
get hits.

Signed-off-by: wm4 <wm4@nowhere>
Attempt to make code more readable

No more double pointer dereferencing.
Merge pull request #26 from wm4/warnings

Use more warning flags
Merge upstream master into noucome-proof