Promise constification.
cf3parse.y: make comma-after-promiser message more helpful
rewrite some examples and bring in new ones parsed from the documentation
Add RingBuffer

Basic ring buffer. We can add more functionality as needed later.
Not thread safe, perhaps add read/write lock later, but this should
be specified in constructor in that case.
Remove duplicate code
Fix wrong comment
Extract function parsing Y,m,d,M,h,s 6-tuple function arguments
Use gmtime to calculate date offsets instead of doing it manually
Merge pull request #1204 from sigurdteigen/master

Add RingBuffer
zero-initialize tm struct before filling
Don't call mktime(3) twice on the same struct tm
Comment tm_year use (-1900 bias)
Merge pull request #1199 from tzz/feature/clarify-comma-after-promiser-error

cf3parse.y: make comma-after-promiser message more helpful
Add RingBufferHead/Tail
Accumulate messages in PromiseLogging
Merge pull request #1192 from jimis/Promise_constification

Promise constification.
Introduce FnSuccess/FnSuccessF shortcut functions

This allows to clean up a lot of buffer allocation in
individual functions. As a separate benefit, FnSuccessF
lifts length restriction which was imposed on scalar
sizes returned from functions.
Add shortcut function FnFailure
Introduce shortcut functions FnSuccess{Bool,True,False}

Those shortcuts eliminate common and noisy construct
if (something)
{
    return FnSuccess("any");
}
else
{
    return FnSuccess("!any");
}
Rename FnSuccess -> FnReturn, FnReturnBool -> FnReturnContext