Bump copyright date

♪ Ticking away the moments that make up a dull day... ♪
Reorganize defs.

- Shuffle things around in a way that makes more sense.
- Wrap long lines.
- Add comments.
Add a method to scale a vector.

Add privelaged method Vector.scale(), which multiplies a vector by a scalar.
Return 'this' in Vector math functions

Return 'this' in Vector math functions so that instances of Vector that are created
may be manipulated in the same expression and the new instance saved. E.g., we may
now do this:

    var pos = Mouse.getPosition();

    ...

    // Get the change in position
    var delta = Mouse.getPosition().subtract(pos);

The latter line would formerly have to have been done as follows:

    var delta = Mouse.getPosition();
    delta.subtract(pos);
Add Droid Sans as a font for users who have it
Add support for momentary buttons

- Add support for buttons that return to their depressed state after being clicked
  ("momentary" buttons)
- Make the file open button a momentary button
- Add a helper class for enumerations to help facilitate this change
Update comment.

We do now support n-gons.
Add a bunch more icons

Add icons for the following:
- Move tool
- Rotate tool
- Bump map texture mode
Use a proper Unicode ellipsis for the open button
Edge loops don't work; brute force it instead.

Instead of detecting the edges of islands, just find all faces contained in an island and
add path data for each face.
Fix ForeignObject support on Safari.

Safari does not (yet) support the File API, but we can still get the relative path to a
file using the value of an input element.