[WIP] Manually add new ioprio.h uapi header.

Change-Id: I5bec5faccf2c4a6186334a382d51ebd87b9aff04
bionic benchmarks: integrate histogram into benchmarks

If a benchmark calls IterationStart() and IterationStop() for
every iteration the benchmark runner will print a 95% confidence
interval for the benchmark.

Change-Id: I6b1486971ab780dd3ebec0f177c9d0bde044882d

Conflicts:
	benchmarks/benchmark_main.cpp
bionic benchmarks: integrate histogram into benchmarks

If a benchmark calls IterationStart() and IterationStop() for
every iteration the benchmark runner will print a 95% confidence
interval for the benchmark.

Change-Id: I6b1486971ab780dd3ebec0f177c9d0bde044882d
bionic benchmarks: limit benchmark run time to 1s real time

The benchmark run loop tries to run until 1s of time has been
accumulated between StartBenchmarkTiming() and StopBenchmarkTiming().
If a majority of the time is spent stopped this can lead to
benchmarks running for very long periods of time.  This can easily
happen when benchmarking something that requires initialization or
cleanup on each iteration.

Modify the loop to run for 1s of real time instead of 1s of
benchmark time.  For existing benchmarks this shouldn't make much
of a difference.

Change-Id: Iaba8a13b4dfc4a5e2cd9992041c9173ea556f9cc
bionic benchmarks: export benchmark library

Export libbenchmark for external projects to write benchmarks against.

Change-Id: I3b04a56a62ce517afc0d5e06dc8d28879ada3d30

Conflicts:
	benchmarks/benchmark_main.cpp
bionic benchmarks: use BUILD_NATIVE_BENCHMARK

Use BUILD_NATIVE_BENCHMARK instead of BUILD_EXECTUABLE.
Note: this will move bionic-benchmarks from /system/bin to
/data/native-tests/bionic-benchmarks/bionic-benchmarks

Change-Id: Ic28d401de638f39d2c8b6f60d0fd3d188a0c125f
bionic benchmarks: allow templated benchmark arguments

Move Benchmark class implementation into benchmark.h and add
a templated BenchmarkArg<T> subclass.  Rewrite benchmark_main.cpp
to move the benchmark running outside the Benchmark class.
Also hides all stl from benchmark.h in preparation for sharing
it more widely with other benchmarks so they don't have to link
against libstlport unless they use stl directly

Change-Id: I34ff460f24df5d4d55dab193ccd0e1c03b4383d3

Conflicts:
	benchmarks/benchmark_main.cpp
PTHREAD_KEYS_MAX cleanup.

I fixed this bug a while back, but didn't remove it from the list,
could have added a better test, and could have written clearer code
that didn't require a comment.

Change-Id: Iebdf0f9a54537a7d5cbca254a5967b1543061f3d