Report SQL server correctly

Fixes for the problem that @tmichelet was trying to fix with #968.

What the issue is: Most of the metrics we report from SQL Server are not reported correctly

How to fix it: [Microsoft documentation](http://blogs.msdn.com/b/psssql/archive/2013/09/23/interpreting-the-counter-values-from-sys-dm-os-performance-counters.aspx) explains how to do it properly. Each counter has associated with him a value `cntr_type` explaining how to report it. We can read this value and report the metric accordingly. This is preferred to setting the report method in advance because some metrics may change type between different verisons / OS 

Implementation info: In order to not break existing setup of users, the "type" (rate, gauge, histogram) attributes in the config is supported and overwrite any determination that we do ourselves.

@tmichelet @conorbranagan if you want to take a look.
I refactored that function to
```python
    def typed_metric(self, dd_name, sql_name, base_name, user_type, sql_type, instance_name, tag_by):
        '''
        Create the appropriate SqlServerMetric object, each implementing its method to
        fetch the metrics properly.
        If a `type` was specified in the config, it is used to report the value
        directly fetched from SQLServer. Otherwise, it is decided based on the
        sql_type, according to microsoft's documentation.
        '''

        metric_type_mapping = {
            PERF_COUNTER_BULK_COUNT: (self.rate, SqlSimpleMetric),
            PERF_COUNTER_LARGE_RAWCOUNT: (self.gauge, SqlSimpleMetric),
            PERF_LARGE_RAW_BASE: (self.gauge, SqlSimpleMetric),
            PERF_RAW_LARGE_FRACTION: (self.gauge, SqlFractionMetric),
            PERF_AVERAGE_BULK: (self.gauge, SqlIncrFractionMetric)

        }
        metric_type = None
        cls = None
        if user_type is not None:
            # user type overrides any other value
            metric_type = user_type
            cls = SqlSimpleMetric

        else:
            metric_type, cls = METRIC_TYPE_MAPPING[sql_type]

        return cls(dd_name, sql_name, base_name, 
            metric_type, instance_name, tag_by, self.log)
```
It's way more readable and should be equivalent but please double check