WRT question 1:
What they've (almost certainly) actually blocked is just outgoing traffic on the normal ssh port, 22, but (obviously) they allow traffic out on the normal http port, 80.
However, the ssh server doesn't have to use port 22, just like http servers don't have to use port 80. It's just convention, which saves normal users from having to think about port numbers. So the first thing you should try is to set up sshd at home configured to use port 80 instead of port 22, which is a matter of adding:
/etc/ssh/sshd_config. See also
man sshd_config. The ssh client also uses port 22 by default -- but you can specify a different one with the
-p switch, eg,
ssh -p 80 .... Note that some of the other ssh tools (eg, scp) (ridiculously enough) use
-P instead of
-p. Many other tools (including web browsers) will allow you to specify the port as port as part of the address, eg,
Presuming you get to use your own computer at work or otherwise have access to an ssh client, that should solve the problem.
You could also use port 443, the normal https (note the 's' for secure) port, since you can probably use https at work as well (therefore, it is not blocked by your firewall). While most ports numbers have specific services conventionally associated with them, they are all functionally identical (although lower numbers on *nix require root privileges to open, including 22, 80, and 443).