Consumer confidence is at its highest level for three years in the UK, according to new figures, driven by improving sentiment on levels of income and debt.