Kosnametag part1 and part2

This implements Part 1 and Part 2 of issue #322.

#322 was supposed to just be an exploration of how hard it would be, but in actuality part 1 and 2 turn out to have been so easy I just went ahead and did them as the only way to discover if the idea would work was to just DO it.

### To test:

(A) Pick one or two stock parts from SQUAD and edit their ```part.cfg``` files to add the following to them:
```
MODULE
{
 name = KOSNameTag
}
```
For my test I did it to these two fuel tank files:
```
fuelTankX200-16.cfg
fuelTankX200-32.cfg
```
You can use any particular part or parts you want to test with.

(B) Build a craft that includes those parts on it.

(C) Rightclick some of the parts.  Notice that for those parts that you edited their part.cfg files, you now see the following two new lines in their menu: name tag:  <unassigned>, and Change Name Tag [button here].


(D) click Change Name tag, you get a small popup window in which to type a new name.  Type a name and hit RETURN.  When you hit RETURN, the new name is assigned and the input box goes away.

Sadly I can't make a screenshot of the popup window where you type the name.  Apparently the F1 key in KSP doesn't record those popup windows in the screenshot.  But they're there.


(E) You now see the new name on the rightclick menu for the part.

![screenshot144](https://cloud.githubusercontent.com/assets/5216848/4898906/e1041564-6415-11e4-8dd5-cc5d0566378e.png)
![screenshot145](https://cloud.githubusercontent.com/assets/5216848/4898908/e3fc05c4-6415-11e4-9ed5-64dfb63c46b2.png)
![screenshot146](https://cloud.githubusercontent.com/assets/5216848/4898913/f0433532-6415-11e4-8619-c97f51d2c854.png)

(F) Now you can obtain the list of all parts with that name on them with ```SHIP:PARTSTAGGED("your name here")```.

![screenshot148](https://cloud.githubusercontent.com/assets/5216848/4898921/0c2a042e-6416-11e4-894b-68445f81b2c3.png)


Parts can be tagged in either the editor or in flight.

In the screenshots below, I've renamed one of the two middle tanks from "middle tanks" to "other middle tank", to prove that cloned parts can have unique names:

![screenshot149](https://cloud.githubusercontent.com/assets/5216848/4898923/0e407180-6416-11e4-8406-8f9248566f7e.png)







Sometimes people operate under a coding standard that says "always include a default case on every switch() even if it has no purpose and just contains 'break'."  Saying "default: break;" is a way of explicitly telling other programmers "The fact that there are situations in which none of the switch cases trigger is quite deliberate, not a newbie mistake of omission.  I meant for nothing to happen in those cases."

It's a bit like how whenever I have a for loop that iterates over every element in an array other than the first one, I feel the need to add a comment stating that the fact I'm starting at index 1 instead of index 0 isn't a newbie error.