Provide own strdup() if it's not available

The strdup function may not be available, depending on the system and
the compiler options. Create our own implementation and use it if it's
not available.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Update copyright notice with current year

It's 2014 now.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>