Use inheritance for initializeLegendFields()

It didn't make sense to have this as a private method. We use
inheritance instead.
Tries to avoid multiple inits in legends editors.

See #484.

There are at least two instanciations provoked by the code in
SimpleStyleEditor : one when calling initialize, one when calling
setLegend. In fact, setLegend is responsible to the calling of
initializeLegendFields, which is the method that creates most of the
UIs. When calling initialize, we make a silent call to setLegend... and
then we call setLegend again.

To fix that, I add a initialize(LegendContext lc, Legend leg) to the APi
of ILegendPanel. calling it, we don't need the external call to
setLegend : we admit that we are giving the needed legend to the panel
from the beginning. The original initialize is still here and uses the
new one.
Simplify implements lines

All subclasses of AbstractFieldPanel implement ILegendPanel, so just
make AbstractFieldPanel implement ILegendPanel.
Remove unnecessary castings
Remove unused newInstance() method
Remove usages of PnlRule#initialize(LegendContext)

First step in major refactor of Pnl constructors. We want to remove all
usages of initialize(LegendContext) and instead pass a LegendContext to
the constructor. Separating the initialization from the constructor is
one of the main reasons for #484.

We also make RuleWrapper take a LegendContext in the constructor, and
remove two unused constructors.
Make factory methods use a LegendContext

Another step towards making all constructors use a LegendContext.
Refactor: Several small changes

* Move getComponent() up and make it just return this (no calls to
  initializeLegendFields first).
* Move initializeLegendFields up to the ILegendPanel interface
* Move all references to a DataSource up to AbstractFieldPanel
* Simplify intialize(LegendContext, Legend) by moving its implementation
  up to AbstractFieldPanel, and override it in PnlAbstractTableAnalysis
  in order to update the preview
* Fix spacing in various places.
Remove NoPanel (no usages)
Introduce TablePanel class; Fix #494
Add import that got lost in the rebase
Merge pull request #495 from agouge/fix/494

Fix #494 and do a little refactoring (introduce TablePanel)