Disallow statements between overloads

Ensure that overloads are consecutive when checking functions.
this fixes #75 and #92 
Seems too generic, the problem may not be a missing implementation per se but an implementation that is separated from the declaration.. so something like "Function implementation is missing or not immediately following the declaration", or "Function implementation is expected to follow the declaration" .. etc..