Add extended particles api.

This api extends the features of the particles api, which allows us to create colored particles, colored particles, particles with motion vectors and so on. This is possible by changing the amount of particles that are send in the packet to 0, this changes the behavior on the client.
@Minecrell
@ST-DDT 
The exception was originally to throw a error if the effect wasn't completed, but the default values of the builder should be set by default. Like the count to 1, motion and offset to Vector3f.ZERO and the colors/materials are the default ones from the particle type. So  remove the exception instead of keeping it?