Enables transparent backgrounds

This pull request introduces the option to render qrcodes with transparent backgrounds.

For the vector based renderers, this is achieved by simple not creating a white background by default any more.
For the png renderer, a transparent background layer is created when initialising the image; If no background color is set afterwards, the background remains transparent.

This breaks backwards compatibility because the the default (when not calling setBackgroundColor explicitly) are transparent backgrounds.
The only way to avoid that would be to introduce a new parameter to the constructor of the Renderer classes which toggles the behaviour, defaulting to non-transparent backgrounds. Semantically, I'd think a transparent background is a great starting point for an image and calling setBackgroundColor in case I want a color on top of that is ok :)
What do you think?

Thx for the great library :)

I'd argue that the default color should definitely be white. To make it possible to set transparency (by setting ```null``` as background color), I'd suggest to set the white value in the constructor.