convert internal script generation to use ScriptBuilder.

Also, unexport the functions to generate script types. Everything should
(and is) be using PayToAddrScript() with an address type instead of
throwing bytes around.

discussed with #@davecgh
Convert builder.Push* to builder.Add* we think this is clearer.

Also, shorter!  Discussed with @davecgh.
Add support for pay to pubkey addresses to PayToAddrScript

Based on some initial code from @davecgh, finished by me.