toolchain/mk: add rule for linkdep cache objects

The previous linkdep cache code worked only because of the mere
coincidence that toolchain/cache and examples/* both have a ../../
distance to the repository root.  Fix this by adding a rule for linkdep
cache object files.  This allows building out-of-tree projects.

Noticed-by: Roy Smeding
spiflash: Add utility to convert capacity to bytes
Merge pull request #92 from bgamari/master

spiflash: Add utility to convert capacity to bytes
rtc: Ensure next is initialized
rtc: Ensure time is valid before scheduling alarms
rtc: Set TAR before enabling interrupt
programmer: moved to separate repo
programmer: add submodule
toolchain: check for programmer submodule
toolchain: git submodule update needs --init.  silly.
mchck.mk: fix swd-flash

Reported-by: mkad
nrf: make sure we have the right int
Merge branch 'master' of github.com:mchck/mchck
rtc: Fix rtc_alarm_cancel

Previously the head wasn't considered.
spiflash: Use enum values instead of magic numbers
spi: Add queued flag to spi_ctx_bare

This allows us to ensure that the queue never forms a cycle, e.g. when
the same context is used for multiple transactions. These issues are
very difficult to debug and therefore the small cost of this measure
should be well worthwhile.
Merge pull request #96 from bgamari/master

Various fixes for RTC and SPI
toolchain: add I2C library with queueing

Code written by myself and Derek Mulcahy.
examples: add i2c scanner example

Code originally by Derek Mulcahy, ported to the queueing I2C infrastructure by myself.
toolchain: implemented corecode's i2c recommendations, fixed bugs

* Removed references to the glitch filter
* Changed the callback invocation
* Got rid of the i2c.h macros; too intransparent (and would break in
    loops)
* Replaced 'UNUSED' dummy read with a void cast, inspection of the
    generated assembly verifies that it does the right thing
* Created enum for read/write, clearer that way
* Invoke callback after everything else is done
* Removed a debug statement that I missed
* Little bit more code deduplication
* Misc style changes