Add start_child/3 to limit the number of children

A supervisor behaviour process may have dynamically added children
started by other processes.  The count of the number of children
could be retrieved from the process with count_children/1 before
starting another with start_child/2 if a maximum number of children
is to be maintained.  This introduces an overhead of a round trip
message and the possibility of a race condition.

With the addition of a Limit argument in start_child/3 the supervisor
will either start a child or return {error,child_limit}.

This is quite useful where a fixed size pool of processes might
otherwise be used and is suitable for cases where child workers are
started with high frequency.