Add the CELERYD_MAX_MEMORY_KB setting

This allows users to specify the maximum amount of resident
memory that may be consumed by a worker before it will be
replaced by a new worker. If a single task causes a worker
to exceed this limit, the task will be completed and the
worker will be replaced afterwards.

This commit depends on the corresponding commit in the
billiard project that enables this setting.