Hey @DaviesJ89
I definitely don't have all the answers as I don't deploy to shared hosting but here's my 2c anyway.
Most modern frameworks are not designed with shared hosting in mind. Laravel makes this easier than most to deploy with Laravel Forge. The idea is that you get a VPS (e.g. Digital Ocean for $10/month) and then use Forge to manage deployment and updates of your sites.
You do not need a different VPS for each site so, one VPS could potentially host many sites.
As to shared hosting. Some hosts are better than others and of course they will have to meet the minimum requirements (http://laravel.com/docs/5.1#installation) which rules out a lot of hosts.
Most shared hosts I've encountered will let you access, what is often called, the home directory via ftp or the file manager. This isn't accessible from the web but this is where all your Laravel files should live. There should be another directory often called "public" or "htdocs" or "www" and this is where the contents of the public directory from Laravel should go.
As to your questions.
- If you mean "can I install Laravel into a subdirectory e.g. /myproject?" then yes you can.
- I don't know.
- Yes, this is the usually only way with shared hosting. Please use SFTP though as most hosts offer this.
- I don't see why you would have to keep the files in /public to achieve this.
- Yes.
If you are trying to build something that can be wrapped up into a neat little installation package (like WordPress or some CodeCanyon package) that can be deployed with little knowledge to any type of hosting and will keep itself up to date then, personally, I'm not sure Laravel or any modern framework is the right choice.
Hope that helps.