Fixes Hayai for C++11.
Merge pull request #2 from brunonery/master

Fixes Hayai for C++11
Merge pull request #1 from nevkontakte/master

Several hayai enhancements
Clean up merged features, move results to separate struct.
Remove hook anti-pattern.
Move test filtering to separate method.
Lower CMake version requirement.
Factor output out into separate configurable class structure.
Add AUTHORS file.
Update file name convention for Hayai source code.
Refactor namespace to lower case hayai.
Refactor sample.
Removed trailing namespaces
Introduced "Clock" class

- Clock class abstracts out system-dependent clock access.
  Basically, it provides two static methods:
  1) now() - gets the current system-wide clock of type "Clock::TimePoint".
  2) diff() - calculates difference between two time points, in microseconds.

- Do not use gettimeofday() on Linux for the following reasons:

  1) POSIX.1-2008 marks gettimeofday() as obsolete, recommending the use of
     clock_gettime(2) instead.
  2) Use clock_gettime() to get monotonic clock (raw hardware-based time clock
     that is not subject to NTP adjustments or the incremental adjustments
     performed by adjtime(3)). This is less expensive and more reliable clock
     source. Available since since Linux 2.6.28.
Implement Clock for OS X using mach_absolute_time().
Use CLOCK_MONOTONIC on Linux < 2.6.28.

CLOCK_MONOTONIC is similar to CLOCK_MONOTONIC_RAW but does
not provide access to hardware clock. It is less favorable for
performance benchmarks, but is available in older kernels.
Added some notes/docs on clock implementation.
Rename "hayai_chrono.hpp" to "hayai_clock.hpp".

This makes more sense since the header defines "Clock" class, thus
it is more intuitive to have it the header file named accordingly.

Also, this avoids confusion with C++11 and/or Boost "chrono" library.
Cosmetic changes.

- Use `HAYAI_CLOCK_HPP` as an include guard macro instead
  of `__HAYAI_CLOCK` as more C++ friendly. According to C++ standard
  (17.4.3.2.1):

    Certain sets of names and function signatures are always reserved
    to the implementation:

    * Each name that contains a double underscore (_ _) or begins with
      an underscore followed by an uppercase letter (2.11) is reserved
      to the implementation for any use.
    * Each name that begins with an underscore is reserved to the
      implementation for use as a name in the global namespace.

    This is also ruled out by C stanard, section
    7.1.3 "Reserved identifiers".

  Just being anal here :-]
- Added copyright to the header.
Style updates and moving to nanosecond durations.