Update Gemfile and .travis.yml

This change separates the gems for functional tests and unit tests so
that TravisCI doesn't have to care about beaker. It also brings the
Gemfile and .travis.yml files in line with the other puppetlabs modules.

Also updated one of the tests to avoid deprecation warnings in the
latest 3.x puppet.
Merge pull request #152 from cmurphy/fix_beaker

Update Gemfile and .travis.yml
Add support for configsvr
Add support for shardsvr
Make port definition optional

Based on the use of the mongod process it should listen on a different
port[1]. configsvr should be listening on 27019 and shardsvr on 27018.
Currently, since the port is speficied in both init.pp and server.pp
even though the server is start on the mode mentioned above it will
listen on 27017, which is wrong. It is backward compatible since by
default if no port is specified it will listen on 27017

[1] http://docs.mongodb.org/manual/reference/default-mongodb-port/
Ensure rs.conf() is run on the proper mongod process

Currently, rs.conf() can only be run on 127.0.0.1:27017.
When running a node in shardsvr mode, the mongod process
listens on port 27018, hence the rs.conf() check fails.
Add support for mongos configuration
Implement Sharding Support

This patch aims to support MongoDB sharding feature.

* Add a Type and a Provider to manage a MongoDB Shard resource.
* Add tests/sharding.pp to show an example of usage.
* Unit tests for the new Type and the new Provider.