Create README
Fixed typo in README
Use concept of Hamcrest in all test cases
Update shebang for all scripts for systems that do not ship with bash
Use CMAKE_DL_LIBS to support more platforms
Move apply() function from RuleSet to Processor

RuleSet becomes a pure collection of rules. It no longer is a messenger to 
pass ASTContext and ViolationSet to all the rules it consists of.
Move getting rule configuration logic back to RuleConfiguration

RuleBase doesn't need to know the configurations to concrete rules. 
So these logics are moved to RuleConfiguration, and rules now directly
ask RuleConfiguration for certain values.
Introduce RuleCarrier for carrying context around rule inspection

Move ASTContext and ViolationSet from RuleBase to RuleCarrier, so that
RuleBase becomes a pure interface but takes a RuleCarrier. RuleCarrier can 
be upgraded, but RuleBase interface will keep the same. 

In addition, methods like adding violations to violation set now are extracted 
to RuleCarrier, which makes more sense for logic separation.
Tests for RuleCarrier
Remove redundant using statement
Shorten long line code according to dogfooding
Extract AST related addViolation methods to AbstractASTVisitRule
Add linker info for FreeBSD system
Use a more restricted syntax to satisfy dash
Update copyright info
Add OCLintConfig.cmake for reusable CMake configs
Review header includes and namespace usage
Start reporters module with copying text and HTML reporters from core module
Add bitcode reader as a new dependency
Dynamically load reporters' dll, and choose one according to configuration