Nigel Farage has won the Clacton by-election, but his victory has been overshadowed by renewed questions about his finances.