Update init scripts and templatize

Updated the naming so we can add an instance name to them.
Add suffix function from puppetlabs stdlib

At the moment we use stdlib 3.2.0 which doesn't have the suffix function.
Merging it in manually now in the module solves this for now.
Update files to use new instance structure

- Added instance define
- Updated services + init service provider
- Updated params to provided required data
- Updated config handling
Part 2 for multi-instance support

- Ensure we sequence everything correctly
- Use correct variables in templates
Part 3 for multi instance feature

- Make sure removal of the instances work
- Make plugin define work for restarting the instances ( ugly fix for now )
- Fix Acceptance tests
- Add rspec/its as it got removed from the rspec core
- Minor fixes for init templates
Add Systemd support back in for multi instance support
Ensure Suse tests can run
make puppet-lint happy again
[TESTING] New test: validate data path feature
[TESTING] Add test to ensure the data dir is created
Make sure we create the parent data dir's as well.
[TESTING] Improve testing around datadir option

- Default values
- Single data dir from main class
- Single data dir from instance
- Multiple data dirs from main class
- Multiple data dirs from instance
[TESTING] Try to fix an ordering issue

Sometimes the data dir rights get changed after ES is started causing it to fail.
Allow for different base logging per instance
Make sure we don't try to manage the service if we set it to 'unmanaged'
More fixes for systemd service provider part
[TESTING] Update rspec tests
[TESTING] Pin rspec to 2.14.x as its not working with rspec3 yet
Make config optional in main class
[TESTING] modify some spec tests