Hirshfeld-I charges: from molecules to solids: implementation, pitfalls and applications