Get a particular module's information programmatically
No - as you've already discovered, the association is the other way around (i.e. a list of modules against each hook, not a list of hooks against each module). Nothing in Drupal's core needs to know a list of all hooks a module implements, so no such function exists. As there's no requirement for a module to declare which hooks it provides (though they can through hook_hook_info()), such a function would be difficult or impossible to implement reliably.

If you can trust that all the modules you have installed are well documented, you could write something that looks in the comment block of each function for Implements hook_, and build a list yourself that way. Or you could compile a list of all the hooks you're interested in knowing about, run each of them through module_implements, and build your list.
Assuming by "menu link" you mean a path provided by a module that has the default menu type, and will subsequently appear in a menu automatically, something like this will do it for all modules:

$menu_items = array();
foreach (module_implements('menu') as $module) {
  $func = $module . '_menu';
  if (function_exists($func)) {
    foreach ($func() as $router_path =&gt; $item) {
      if ($item['type'] == MENU_NORMAL_ITEM) {
        $menu_items[$module][$router_path] = $item['title'];
      }
    }
  } 
}


That will probably need to be be tweaked for your requirements.