Refactor option passing to language readers

By passing the options in the __init__ function for the
LanguageRearedBase object it is easier to add new options that affect
the behaviour of the language reader.

The change makes adding configurability to LanguageChooser easier as
the used LanguageChooser object is instantiated only in one place.
Add support for calculating modified CCN

In modified CCN multi-decision structure is considered as single
unit, i.e. each decision in such structure is not counted. Instead
the whole structure increases CCN by 1. For example, consider
the following code:

switch(value)
{
    case V1: break;
    case V2: break;
}

When using modified CCN the calculated value is 2 but with normal
CCN the value is 3.