Implication as defined in mathematical logic If we can take the truth of an implication to mean the validity of reasoning,
then that would mean that all reasoning that begins with false premises is valid reasoning. Are there no counterexamples to this, how is this justified and why does it work in mathematics ?
It is intuitively clear that if we start with true premises, and conduct valid reasoning, we must come at true conclusions. 
And we can easily come up with examples where we start off with false premises, conduct valid reasoning and come at true conclusions (or false ones)
for instance 3=5,
             5=3 +
             8=8
and so on. Does it even make sense to talk about valid/invalid reasoning
when we start off with false premises ? What were the reasons and justifications for defining implication (its truth table) as we know it today, what's the historical background of it ?
 A: We do not take the truth of an implication to mean the validity of reasoning.
An argument is only considered valid if the reasoning is sound and the premises justified.
When we say an implication is true, we only assert that either the consequent is true or the antecedent is not.   This assertion may derive from sound reasoning, or simply from intuition, observation, or such.
A: I don't know much about math history, but here is how I think of implication being true for false premises.
Implication is, at least in my opinion, most useful in first-order logic when you can say something about all objects. For example, in regular propositional logic, you might be able to say that $itIsMonday \rightarrow tomorrowIsWednesday$ when $itIsMonday$ is false. However, this doesn't make any sense because the day after Monday is still Tuesday even when it is not Monday.
This paradox comes from the fact that this kind of propositional logic model is not robust enough to really model our days. Since there are a finite number of days, we can create a propositional logic model in which our days and how they are related in order can make sense, but we would need a lot more variables. Therefore, I like to use first-order logic. First-order logic lets us say things about all days. For example, the function $isMonday(day)$ can check if $day$ really is Monday and $isNextDayWednesday(day)$ can check if tomorrow really is Wdnesday.
Now, if we just write $isMonday(day) \rightarrow isNextDayWednesday(day)$, then we run into the same problem: If $day$ is not Monday, then this conditional will be true even though it really should be false. To fix this problem, we use a quantifier:
$$(\forall day)(isMonday(day) \rightarrow isNextDayWednesday(day))$$
The $\forall$ is a universal quantifier and basically means the words "for all" and lets us say a statement about all days, not just one random day called $day$. Now, the above statement is false because when $day$ is actually Monday, $nextDay(day, Wednesday)$ holds false since the day after Monday is not Wednesday. For the statement above to work, it needs to be true for all days, not just one day.
Now, this is where implication being true when the hypothesis is false comes in handy: With our existential statement, we only want the quantifier to check the statement if $day$ is Monday. Otherwise, we do not care whether or not tomorrow is Wednesday because we only want to look at the case where today is Monday. Therefore, we make the conditional automatically true so that the quantifier won't deem the conditional false for cases that we do not want to check the conditional for.
Therefore, this is why conditionals are true when the hypothesis is false: When we make a conditional about many different objects, we only want to see if that conditional is true for certain objects satisfying the hypothesis and ignore all other cases. Therefore, in order for the universal quantifier to work, the conditional must be true for cases we don't want to check where the hypothesis is false and the conclusion should only be checked if the hypothesis holds.
I hope this clarifies conditionals for you!
