Maybe this is a little much for one question. Especially the part about SyncTeX should probably be put in a separate question. Also I can only answer the rest.
To put common commands into a dedicated file, you could either just create a simple mypreamble.tex file and execute \input{mypreamble} to use it. A more sophisticated approach is to write a custom package, i.e. a .sty file. As I described before essentially you only need these two lines:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mypreamble}[2012/08/23]
at the beginning of the .sty file, which give the name of your package (in this case the file should be names mypreamble.sty) and the date of the last changes. It can be loaded with \usepackage{mypreamble}.
In any case you should put the file in a directory where it can be found by tex. Of course you don't want to always copy it to the projects directory. Although there may be other ways, I think the best approach for this kind of style file is to put it in a special directory, like e.g. /home/myname/tex/ and add that directory to the TEXINPUTS environment variable. Where you can do that depends on the window manager or shell you are using. The command line should look something like this:
export TEXINPUTS="$TEXINPUTS:.:/home/myname/tex:"
I had to put this line into ~/.zshrc, but it could also belong into ~/.xinitrc, ~/.bashrc, ~/.profile or others depending on your setup.
kpsewhich --var-value=TEXINPUTS: it will return a list of where 'latex' searches for files, etc. It will probably mention one like/home/<user>/texmf, which means you could put personal.styfiles in a place like/home/<user>/texmf/tex/latex/, and it will be found. You can dokpsewhich --var-value=BIBINPUTSto do similar things for.bibfiles, probably ending up with putting your.bibin/home/<user>/texmf/bibtex/bib. The one thing you want to do is make the 'local' tree mimic the system tree in terms of directory structure. – jon Aug 23 '12 at 21:13