I need to create software architectural diagrams and designs. I don't have and can't afford MS Visio. Are there any good, free options? I'm hoping that the free software has ready-to-use components/widgets like server icons, network icons, etc.