Replaced `bash` with `file` resource when setting the limits

While reading the recommendations found [here](http://asquera.de/opensource/2012/11/25/elasticsearch-pre-flight-checklist/#file-descriptors)
I thought that it would be a good idea to use `limits.d` instead of hacking the `limits.conf` file directly.

This way Chef handles the idempotency itself and we can drop the custom (and hard to read) `not_if` magic.

The "chef-ulimit" cookbook uses the same approach: https://github.com/bmhatfield/chef-ulimit/blob/master/definitions/user_ulimit.rb#L13

Tested on Vagrant with Debian 6 and Ubuntu Precise.

Closes #101
Closes #118

Fixes #102
Run `ulimit` in the init script to prevent errors when /etc/security/limits.d is ignored

This follows the conventions in the official .deb and .rpm packages from elasticsearch/elasticsearch#2059.

See:

  * https://github.com/elasticsearch/elasticsearch/blob/master/src/deb/init.d/elasticsearch#L148-L154
  * https://github.com/elasticsearch/elasticsearch/blob/master/src/rpm/init.d/elasticsearch#L75-L83

This is part of a larger changeset by @chrisroberts in #103.

Closes: #103
Closes: #109

Related: #101
Related: #102
Merge branch 'limits' into 'master'

Refactoring the way we set limits on the system:

* Use separate file in `/etc/limits.d/`
* Run `ulimit` in the init script defensively

Related issues: #118, #109, #103