Duplicate package refactor

Hi Jeff,

My PR fixing the duplicate package definition bug I encountered. It's just a basic defined package check + dynamic package names depending on the operating system ("git" for SL, "git-core" for Ubuntu, etc). I also split the main class to improve code clarity. 

Declaration is now:

```
include elasticsearch
```

Instead of:

```
include elasticsearch::install
```

If you rather prefer to use `elasticsearch::install` for backward compatibility, feel free to rename the install class and update the init one.

Hope it helps. 

Feel free to correct / reject / improve bad code. I'm not a Puppet expert.