core: tweaks require_plugin version

 - use a rubygems version specification
 - add a test
 - raise a specific error