Make script more modular

While the building system is not ready for #4692 , we can start moving the code already.
When #4692 gets reopened other PRs touching script can be rebased on top of this one and decrease the chances of them being breaking/getting broke by 4692.
Being _extremely_ pedantic here:
```
-    std::vector<unsigned char> data;
+    vector<unsigned char> data;
```
It appears that you did this because you removed the std namespace for script/script.cpp. I agree with that change as it's good practice, and it bothers me that "using namespace std" is used all over the bitcoin code.

HOWEVER

That makes this no longer just code movement, since that can change seemingly obvious semantics. It's unlikely, but possible.

Assuming this is intended to be code movement _only_, please restore the "using namespace std" throughout, then we can nuke em as a follow-up.