Fix handling of rules for unversioned classes.

Unversioned classes' default version number is technically -1,
so we need to properly account for this in TSchemaRule::TestVersion
so that the rule applies to the default unversioned schema when
the rule specifies version="[1-]"
Don't complain about missing dictionary for artifical elements
make version v5-34-09.
std::vector<bool> specialization for __setitem__
Consolidate handling of TGFileBrowser* TEveBrowser::fFileBrowser member, see
ROOT-5294.

Add 'SetFileBrowser(TGFileBrowser*)' method.

Add bool flag to 'TGFileBrowser* MakeFileBrowser(Bool_t make_default=kFALSE)'.
TSQLite-classes to access sqlite3-databases. See ROOT-5256.

The attached patches add the following classes:
TSQLiteResult
TSQLiteRow
TSQLiteServer
TSQLiteStatement
and corresponding integration into both the ROOT-buildsystem and cmake.
Naturally, also the macro for the plugin-manager is included.
Patches supplied for ROOT 5.34.08 and current master (as SQL-part is
rarely changing, this statement should stay valid at least for some months).

Some usage notes:

* The handed path is evaluated as URI by sqlite3, which means it can be
  a relative or absolute path and can even contain additional settings
  as "URI" parameters, which are described in the SQLite-documentation.
* Functions "{Create,Select,Drop}
  DataBase(s)", "Reload", "Shutdown" are not implemented as SQLite
  operates on one DB per file only. The implemented stub methods return
  appropriate error results.
* "TSQLiteServer::GetColumns()" is not implemented (i.e. returns error
  and value 0): This is sadly not possible via a query in SQLite by
  their API design. This also means the TableInfo-objects cannot be queried.
* The result-row-count of a TSQLiteResult is always -1, as SQLite does
  not know the number of result rows before all have been retrieved
  (a valid optimization for a file-only DBMS).

For the person reviewing this patch, please note that the indices of
bind_parameters in SQLite start from 1, while those for the result-columns
start from 0.

As this is a rather large featureset to cover and the software of our
experiment currently only uses a small subset of it (only 'reading'
statements, and no prepared statements), I also wrote a very simple
testing-tool which creates a new database with a table with 10 columns
of very different type, inserts some example data, and rereads that
data both using a simple Query() and using a prepared Statement().
This tool and a very short makefile to build it are also attached if
needed for the review-process. The tool uses the commands described
in the documentation of the abstract baseclass TSQLStatement to
simulate real-life behaviour.
Please note that tool is rather hacked-together without real error-handling,
as it is not meant for long-term usage, but might be helpful in the
review-process / adapted to a unit-test.

Apart from the mentioned specifics, nothing is really SQLite-only,
thus I did not change the documentation of the baseclass in the patch
(this documentation also lists all SQL-implementations). At least this
list in the documentation might be extended to make users aware of the
new implementation.
Add Oliver Freyermuth fro SQLite plugin.
Fix compilation problem for sqlite versions between 3.5.0-3.7.7. ROOT-5318.

Patch provided by Oliver Freyermuth.
The version 1.2.23 of libpng was the built-in version in ROOT. It had some security issuee. Now we have 1.2.50.
cf: https://sft.its.cern.ch/jira/browse/ROOT-5322
More correct storage format for timestamps. Fix ROOT-5330.

Solution attached as patch:
- SetTimestamp() writes timestamps of the format "2013-06-30 05:11:01.021"
  to the database and communicates the 3-digit precision (i.e., milliseconds)
  to the user in its comment. 3 digit precision is also what the strftime /
  datetime methods of sqlite use, all other digits are ignored by those methods.
- GetTimestamp() reads such timestamps, also limiting the fraction-precision
  to 3 digits and communicating that to the user from within the comment.

Patch by Oliver Freyermuth.
More correct storage format for timestamps. Fix ROOT-5331.

Solution attached as patch:
- SetTimestamp() writes timestamps of the format "2013-06-30 05:11:01.021"
  to the database and communicates the 3-digit precision (i.e., milliseconds)
  to the user in its comment. 3 digit precision is also what the strftime /
  datetime methods of sqlite use, all other digits are ignored by those methods.
- GetTimestamp() reads such timestamps, also limiting the fraction-precision
  to 3 digits and communicating that to the user from within the comment.

Patch by Oliver Freyermuth.
zlib should be included from a different place on windows.
fix coverity issue.
Fix hanging context menu for TQtWidget canvas. Fixes ROOT-4031.
ignore tutorials/tree/basic.root.
Added paranthesys around expressions multiplied by units so that the unit applies to a combined tag and not only to the last term
import the mods (from the trunk) allowing to change the line attributes for legos. As suggested here :
http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=16560
Adding enum to TBranchElement to clarify Type numbers

(cherry picked from commit caec9c2a21b520cd456041b77fcda0b52d8ab286)

Conflicts:
	tree/treeplayer/src/TTreeReaderValue.cxx
Added method to get the size of the class

(cherry picked from commit beafe941588df210e50d209fc951bcace6181a1f)
Fix TClass::GetClassSize() to also work for CollectionProxy case: use Size().

(cherry picked from commit 6fecd500190c9f08edd6f2e03c5cf5ec8770d707)