Parser: parse numbers by hand

On the current version of the testFlagReSyncBenchmark from
test_Imap_Tasks_ObtainSynchronizedMailbox, this change cuts the time spent in
getUInt from 4.01% to 0.70% (Gentoo amd64, clang 3.3).

Thanks to Thomas for suggesting to cache the result of std::numeric_limits::max
-- I hoped for compiler optimizing that inline call away, but apparently it
doesn't always happen.

REVIEW: 112698
LowLevelParser: perform fewer comparisons

As suggested by Thomas, let's perform one less comparison for smaller numbers.
This cuts the time spent in getUInt from 0.65% of total to 0.62% :).
Preallocate the memory when possible