I know this question is quite old, but when searching for this problem, this is one of the first results.
Short Answer: Set "plugins.enumerable_names" to "" (empty string) on Firefox 29+.
Apparently, from version 29 onwards, Firefox has a setting on about:config that controls the enumerable plugins. It does not solve the problem completely, because it is possible to query individual plugins, but it helps.
This property is "plugins.enumerable_names", and it has a list of allowed prefixes that can be enumerated. So, for the default setting, "Java,Nexus Personal,QuickTime,Shockwave", all plugin names starting with "Java", "Nexus Personal", ... will be enumerated, and all others will be hidden. To hide everything, just clear that string (set it to "").
More info: https://mail.mozilla.org/pipermail/firefox-dev/2013-November/001186.html
UPDATE: As Pointy has mentioned in the comments, this feature has been removed, since it didn't really prevent plugin enumeration (but made it slightly harder).
Here is the bugzilla page for the patch: https://bugzilla.mozilla.org/show_bug.cgi?id=1169945
UPDATE2: After a quick search, it seems like the only thing that prevents plugins from being enumerated is setting them to "Never activate". In the meantime, removing extra plugins and randomizing the user agent might help.