fix time span humanization precision skipping

fixes #339
I am not so sure about the optional param. It's not clear why one would want to use that and it could actually be used without passing the `precision`, `timespan.Humanize(considerEmptyParts: true)`, which is not good.

I'd suggest adding the following three methods:

```c#
public static string Humanize(this TimeSpan timeSpan, CultureInfo culture = null)
public static string Humanize(this TimeSpan timeSpan, int precision, bool ignoreEmptyUnits = false, CultureInfo culture = null)
[Deprecated]
public static string Humanize(this TimeSpan timeSpan, int precision, CultureInfo culture = null)
```

A couple of things to highlight:

 - precision on the overload is not optional anymore
 - `considerEmptyParts` has been renamed to `ignoreEmptyUnits` but the default value is left as false. This means that the logic should change to by default not ignore empty units which will keep the change backward compatible for those who hadn't passed the culture in. Due to the name change the implementation needs to be reversed too.