Adding report generator facility (v2)

This report generator adds the facility to generate correctly parsable
reports in HTML and CSV format. It separates document structure from
text formatting, enhances code readability and simplifies report generating.
Also it makes possible adding other formats such as TXT or XML.

This report generator implements the following document structure:
	body
	  \---> section
		  |---> header
		  |---> paragraph
		  \---> table
			  \---> table row
				  \---> table cell

The report body consists of a number of sections (a.k.a. <div>s,
a.k.a. tabs).
Each section can contain headers (<h1>, <h2>, <h3>), paragraphs (<p>)
and tables (<table>).

A header is a single line of text.

Paragraphs can contain only text.

A table consists of table rows. A table row consists of table cells.
A table cell can contain only text.

Each section, table, row or cell could have its own formatting.
To distinguish elements from others of its type, each element could have
an unique identifier (see enums section_type, table_type, row_type and
cell_type below). These identifiers are used in formatter implementations
to produce special formatting.

Example of usage:
	report_maker report(REPORT_OFF);

	report.set_type(REPORT_HTML);
	report.begin_section();
		report.add_header("Big report");
		report.begin_paragraph("Some text");
		report.begin_table();
			report.begin_row();
				report.begin_cell();
					report.add("Something");
				report.begin_cell(CELL_SPECIAL);
					report.add("Foo bar");
	report.finish_report();
	const char *result = report.get_result();
Convert powertop to use new report generator facility (v2)

Convert report system to use new report generator facility
for producing parsable CSV- and HTML-reports, enhancing code readability
and maintainability, merging CSV and HTML codepaths, separating document
structure from text formatting.
tx pull of po files
Move report.cpp and report.h to report/ directory (v4)

Move report.cpp and report.h to report/ directory to other report-related
files.
Small rework on report formatter side

Hello,

below is initial version of rework I was talking about. Igor did most part of it (introduced
report_formatter_base class), so mine are just minor tweaks. I'm glad still no one mentioned
templates, just kidding.

one thing I don't really like so far is

        else if (type == REPORT_OFF)
               formatter = new report_formatter();

which is just cryptic and thus look wrong.
perhaps we need something like `new report_formatter_basic()' here (which will require header
file rename).

please review and comment.

------------------------------------------------------------------------

    Small rework on report formatter side:

    - make report_formatter a basic class (previously was interface). hence we can
    remove empty report_formatter interface implementation.

    - drop report-formatter-null class

    - in report maker now we create report_formatter instance for REPORT_OFF mode

    - rename report_formatter_base to report_formatter_string_base, so class name tells
    a bit more, later we can create report_formatter_xml_base/report_formatter_json_base/etc.

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
fix typo and correct coding styles in report_formatter

Igor noted a typo and coding styles errors in previous patch, correct them.

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
cpu: Fix abstract_cpu::calculate_freq

The 'freq' should have the maximun frequency value of all children.
But the current code does not update the freq properly.  Fix it.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
devices: Fix processing /proc/net/dev file

The do_proc_net_dev() reads the /proc/net/dev file and counts tx/rx
packets for each interface.  However index for rx packet (1) is not
match to the file:

$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
       (1)      (2)     (3)  (4)  (5)  (6)   (7)        (8)       (9)      (10)    (11) (12) (13) (14)  (15)    (16)

Change the index to 2 to match to the number of receive packets.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
update TODO list
update po files
Updated tuningsysfs to check all SATA hosts for tuining interests. With new power off to unused SATA ports making it into libata, PowerTOP should now suggest writing min_power to all SATA ports, whether they are populated or not.
Merge git://github.com/fenrus75/powertop