Modified behaviour type to require that type OR factory is set when constructing a behaviour (type is not needed if there is a factory)

Signed-off-by: Martin Evans <martindevans@gmail.com>