implement search options button (issue #204)

* generalized specifying icon name in ConfigureOptionsAction constructor
* added IconButton "ActionIcon" constructor overload for creating opaque buttons
* made OptionsConstructor::SEARCH_KEY public
* fixed typo in doc comment for OptionsConstructor::DIALOG constant
* added SEARCH_OPTIONS key to icon_mappings.properties
    * resources/org/limewire/gui/resources/icon_mapping.properties

NOTE: regarding ConfigureOptionsAction class
  the icon name "LIBRARY_SHARING_OPTIONS" hard coded into the ConfigureOptionsAction
      constructor was factored out to make this constructor more general
  it was called in only three places so this accounts for the modifications to:
    * src/com/frostwire/gui/library/AbstractLibraryTableMediator.java
    * src/com/frostwire/gui/library/LibraryExplorer.java
    * src/com/frostwire/gui/library/LibraryPlaylists.java

again many whitespace only changes
the reason for this was that i took the example from this line in:
    * src/com/frostwire/gui/library/AbstractLibraryTableMediator.java
```
OPTIONS_ACTION = new ConfigureOptionsAction(OptionsConstructor.LIBRARY_KEY, I18n.tr("Options"), I18n.tr("You can configure the folders you share in FrostWire\'s Options."));
```

this is also the only reason for including the OptionsConstructor class in:
    * src/com/limegroup/gnutella/gui/search/SearchOptionsPanel.java
```
    import com.limegroup.gnutella.gui.options.OptionsConstructor;
```

SEARCH_KEY is o/c just a string used to indicate which options panel should be focussed and personally i find the use of constants for such things to be preferable than hard-coding anything - so id say trhat making this constant public is a resonable thing to do - regarding the inconsistency - as these are constants obviously existing for this purpose so the question is "why are not all of these public?" - yes?