So, is it a scripting language or a programming language? What is the difference between the two even?
Meh, there isn't really a difference, all are programming languages without exception. A language is just designated as being a "scripting" language based on the context of how it's used.
For me a scripting language is just any language that is dynamically compiled/interpreted either at runtime or immediately (to give instant feedback as you code) by another application - usually to separate out a particular kind of logic (in Unity's case: game logic). Often it will be a different language to the one that is really hosting things, but that isn't a requirement (I saw a video of the Unreal Engine showing off dynamic re-compilation of C++ code, they were using C++ for their scripts).
As Nypyren points out, when you have a few different languages integrated together then the idea that any of them are for "scripting" is woefully inadequate.
That said, some languages pretty much always have to be hosted by another, Lua is an example that springs to mind. I dare say that there are ways to make a standalone Lua application but it is almost always loaded by some other language, usually C++.