Attack boosts and upgrades now support upgrading attack speed

The syntax is the same as for other upgrades, eg:

```xml
<upgrade>
	<!-- ... -->
	<attack-speed value="500"/>
</upgrade>
```

and

```xml
<attack-boost>
	<allow-multiple-boosts value="false" />
	<radius value="5" />
	<target value="all" include-self="false">
		<unit-type name="archer" />
	</target>
	<attack-speed value="150" value-percent-multipler="true" />
</attack-boost>
```

~~Note that `value-percent-multiplier` is broken at time of writing, but that is not the fault of this change (it's broken in the `develop` branch).~~

EDIT: Not a bug. I misunderstood how `value-percent-multiplier` works. It always increases by a multiple, rather than actually multiplying.

As per the other upgrade tags, the `attack-speed` tag is optional. The animation speed scales the same as the attack speed does.

There's quite a bit of code, but most of it is adapted from the existing upgrade code.

@titiger, there are some cases of floats being used here (since we discussed how differences in handling floats in client computers could cause out of syncs), but that is because the existing upgrade code is using doubles in that way. It seems like a bad idea to introduce inconsistency on a per line basis. Much of the code in this pull request is only minor tweaks from the very similar code for the other upgrade stats.