Ability to lazy load, fixed click event, added ability to create headers array from function

Lazy load means that the csv will build only after clicking the button, useful for big amount of data.
click event - first clear the href and then send the click so it will work anytime (there was a bug with the first click on the button)
Headers - ability to fetch it from an function so it will built it dynamically.