Base.Util: add 'generate random String' functionality
Generation of de-normalized 'Events' table

Reason: for good OLAP performance

  (*) Heading id is a Long, not a String
  (*) Table Headings is not generated anymore. Rather, table Events will have 'foreign keys' referencing the *real* Headings table (see below)

The parsing will be done as follows: let's suppose that we are parsing an Event, represented as the following XML:

      <root>
        <Event id="11" etc etc>
          <search>
            <searchId>33</searchId>
            <allHeadings>
              <heading>
                <name>00304200</name>
                <category>B</category>
              </heading>
              <heading>
                <name>00304201</name>
                <category>A</category>
              </heading>
            </allHeadings>
          </search>
        </Event>
      </root>

As you can see, it has 2 headings. This will generate something 2 lines in output table, perhaps like this:

event_id | search_id | heading | heading_category
11 | 33 | 00304200 | B
11 | 33 | 00304201 | A
Spark's RunParser: add TODO: 'put constants in config file'
Parser: add TODO to make a better structure for parsing
Merge pull request #3 from ypg-data/luis-properHeadingId

De-normalize Events table