[buttontranslator] Group joystick keymaps by family

A great amount of clutter in the keymaps is due to having to repeat each controller name for each action window. This is most visible in the Xbox 360 keymap where over 1000 lines are spent on repeating the same list of joystick names.

The first of these patches allows controllers to be grouped by "joystick family". We can replace a keymap extract may have looked like this:

```xml
	<global>
		<joystick name="joy type 1 vendor A"/>
		<altname>joy type 1 vendor B</altname>
		<altname>joy type 1 vendor C</altname>
		<button id="4">Home</button>
	</global>
	<MyFiles>
		<joystick name="joy type 1 vendor A"/>
		<altname>joy type 1 vendor B</altname>
		<altname>joy type 1 vendor C</altname>
		<button id="6">Highlight</button>
	</MyFiles>
```
With this:
```xml
	<joystickFamily name="joy type 1">
		<name>joy type 1 vendor A</name>
		<name>joy type 1 vendor B</name>
		<name>joy type 1 vendor C</name>
	</joystickFamily>
	<global>
		<joystick family="joy type 1"/>
		<button id="4">Home</button>
	</global>
	<MyFiles>
		<joystick family="joy type 1"/>
		<button id="6">Highlight</button>
	</MyFiles>
```
I've also made sure that keymaps with the old format are automatically grouped as a family in CButtonTranslator. For large keymaps this saves some memory since the the window mapping isn't saved once per altname, but once per family.

db5b10c changes CJoystick for the minor change in `CButtonTranslator`s signature.

ff4dc77 finally uses the new button translator ability to shave about 1000 lines off the xbox 360 keymap, and synchronizes the controller family with the controller names [known to xpad](https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c#L120).