Refactor of qgis2leaf_exec

This request does a major refactor on the `qgis2leaf_exec` method.  Changes are as follows.

- Break method into functions for each part.
- Only open the index file once
- Write files at end only
- Use templates rather then string concat
- Only loop the layers once. Filter vector layers at the start.

**Note**: This is not mergeable yet or fully working.  Needs some more testing but more to show you what has been done so far.