Add messages to Pool model

* Metaprogramming on pool.rb is tested by sync_database_pool_spec.rb
* The define_method is not so cool, using that big array, but made
this way to keep campatability with ruby 1.8.7 once this version
has no `__callee__` method to check how is the original on alias

On ruby 1.9.3+ we can go this way:

```ruby
def request_without_reference(*args)
  service.send("#{__callee__}_#{provider_class.downcase}", *args)
end
alias_method :method1, :request_without_reference
alias_method :method2, :request_without_reference
alias_method :method3, :request_without_reference
```

Last information, kept on pool.rb because an object like vm has no need
on calling requests without reference as first parameter, this will be
used on others objects (like host), but I opted to keep on each object
so don't need to change fog structure and each object can define its own
request call.
It's because the openning bracket its at the same line as the first key but the last one is on its own line.
Further details [here](https://github.com/bbatsov/rubocop/blob/master/lib/rubocop/cop/style/indent_hash.rb)