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
Merge branch 'rule_carrier' into freebsd
Add linker info for FreeBSD system