* Add SCH_PLUGIN::Save() for current file format and code for saving all
SCH_XXX objects.
* Add function to SCH_FIELD to get the position of the field in the component
not the position added to the component position which is what GetPosition()
does. This was required because saving the component field expects position
of the field sans the position of the component.
* Remove public members from BITMAP_BASE object and fix all associated
code.
* Fix the never ending coding policy violations found making these changes.
* Create a new dummy root sheet and screen when the schematic fails to load
which was causing Eeschema to crash.
* Remove conversion from UTF8 to wxString left over from a previous change
which hopefully will fix an OSX build error.
* Fix parsing of text objects to handle version 1 schematic files.
* Fix parsing of component fields to handle version 1 schematic files.
* Don't throw a parse error when a version 1 schematic file doesn't end with
$EndSCHEMATC.
* Factor out PROPERTIES object from the PCB plugin code and move it into
common so it can be used by both the Pcbnew and Eeschema plugins.
* Add schematic I/O plugin manager for loading and saving schematic and
component library files.
* Add initial attempt at a parser for current schematic file format. This
parser will be infinitely more strict than the current parser which is very
forgiving in what it parses.
* Make minor changes to the base bitmap class to support the new parser.
* Add find root sheet support to sheet object to allow fetching the root
sheet from any sheet in the stack.