I've learned that to have the most available Windows Azure VM setup it's best to create availability sets.
My setup would be to have an availability-set for 2 web-VM's and a set for 2-sql-VM's
The database for the SQL server VM is stored on a premium storage disk, however, I obviously only want to have 1 datasource for my database. How can I 'share' this database containing disk across my 2 SQL-server VM's?
I have the same issue on the web-VM where the user can upload images to the website, and they are then stored in a storage account. But both of the VM's in the web-availability-set should have access to these images. All VHD's are stored in Azure blobs.
This isn't really an Azure question, its a "how do I do SQL clustering question".
You can't just share a SQL database between two VM's and it magically work, you would need to setup your VM's in a cluster to share the SQL workload between them. Clustering in Azure is slightly different than on premises as you can't use shared disk storage for clustering (you can use Azure files for shared SMB storage), take a look at Microsoft's article on HA and DR for SQL in Azure. I'd also suggest you may want to look at using Azure Web Apps for your web application, rather an a VM. Using these PaaS services means you reduce your management overhead significantly.
That said, I would ask the question, do you need SQL VM's? Can you use SQL Azure? If you can use SQL Azure rather than full SQL on a VM then Microsoft will take care of all of the clustering and availiblity for you and you don't have to worry about any of this. There are some differences between SQL Azure and real SQL, have a look at this document to see if these impact you.
On the storage for your web data, this is different, and here you can have both servers talk to some shared blob storage for fetching images, you just need to get your application configured to do that. But do bear in mind that you do have a single point of failure if there is a fault with Azure storage (not very likely but does happen) so you may want to configure your app to use 2 accounts if HA is a big thing for you.