Four people have been killed and two children wounded after a man wearing a bullet-proof vest opened fire in the US city of Philadelphia.