Merge pull request #13 from Lekensteyn/performance

Performance
Add fallback fonts.
Fix reduce in DEF
Fix error functions. Error prototype.
Fix undefined value issue in RrdDataFile

`RRDRRAInfo.pdp_cnt` does not exist. A reference to the pdp_cnt member
in a struct exists, this is available via the `getPdpPerRow()` method,
so use that. (actually, `getMinStep() * getPdpPerRow()` can be
simplified further, see below).

While at it, replace the combination
`RRDRRAInfo.getPdpPerRow() * RRAInfo.pdp_step` by `RRDRRAInfo.getStep()`
since this is the same thing. As `RRDHeader.pdp_step` is copied into
`RRDRRAInfo`, this can also be substituted.
Improve performance for graphs in the future

The RRD file has finer details for more recent data points. When looking
for a match for a graph past the last update ("the future"), a RRA would
be picked which has a step size of 1. As we know that no data points are
available, optimise this and return earlier with the full range set to
NaN.
Simplify matching logic

Instead of using a flag for determining whether a value is set or not,
set values that will never match and test for the validity of the
results instead of checking the flags.