SQLServerAgent could not be started (reason: Unable to connect to server'(local)'; SQLServerAgent cannot start).
It was making me really angry when I realised what was wrong, I did not have the account for the Windows user the agent was running under in my database to. I created an account and gave it full access to the db and now everything is going fine.
P.S. Yes I know i am an idiot.