Feature/custom defs

Regarding the discussion on #78 I've created an optional `defs` option that allows you to append custom defs to the SVG sprite. This allows you to add in things like custom gradients that are unaffected by the id renaming scheme, allowing you to apply them with CSS to any of the icons in the sprite.