Can I upload a file in site content editor without having to use Files and Images tab?

Add another closing bracket } just before the line with 'class Page_Controller extends Content_Controller {'.
$has_one has also been declared twice. Remove the empty copy and rebuild the database by opening yourdomain.com/dev/build in your browser.

If you really do have no experience with PHP then I think you should consider how much time and effort you can afford to put into learning it and whether Silverstipe is the right CMS for you to be using right now.
This is because nearly all of the setup and configuration for a site is done with PHP files instead of a graphical control panel. That makes the system difficult to jump into without at least knowing the basics. The upside, though, is that once someone does know what they're doing they have more flexibility and power.

I'm not sure whats going wrong. I've done a test on my local server and it works just fine after I run dev/build. Here's my code : http://pastie.org/887846

Are your building this on a hosted server instead of a local server (XAMPP, WAMPP, etc)?
If so you might try setting your install of Silverstripe to dev mode. http://doc.silverstripe.org/doku.php?id=debugging
This should cause errors to be printed to your browser. Just don't leave it in dev mode any longer than you have to.

I finally managed to get it to run with the extra code suggested... but it appears to make no difference at all to the insert link dialogue, which is where I was expecting to see changes, so am now confused as to what difference this change is supposed to have made.