add "Import course" button (import all exercises from other course)

Not implemented yet.
initial UI for importing all problems from another course
added a watchdog to recover from dead connection to webapp

A failure mode that I have noticed for a while is that
the webapp will report that it has lost its connection from
the builder thread(s), but the builder thread is unaware
that this has happened, and is blocked waiting to receive a
problem id / keepalive signal from the webapp.

To work around, each Builder2Server task has a watchdog thread
that checks to see how long it has been waiting for the
problem id / keepalive, which the webapp should send approximately
every 5 seconds.  If the wait time has exceeded a maximum
(currently 1 minute), then the watchdog forces a reconnection
by closing the socket (breaking the server loop out of its
wait.)
have clean target delete gwt-unitCache directory
update copyright year, make socket field volatile
more work on API/UI for importing all exercises from other course
UI/RPC is in place for importing all problems from course

All that remains is the actual implementation of the database
transaction.

Since the database operation could take a while, it's done
asynchronously (with the client polling for completion.)
completed importing all problems from other course
import course dialog: add label indicating to select a course

This makes it clear/explicit that it is necessary to select a
course to import exercise from.