periph/pmm: fix detection of LPMx.5 support

PM5CTL is not a macro; PM5CTL0_ is only a macro under gcc.  Use LOCKLPM5 as
the clue.  Also update applpm to explicitly reflect whether support is
present.
close #40: add support for reading LED state

Also fixes an information leak / corruption issue in trxeb LED
implementation.
close #41: support setting timer counters

Also stops clearing any pending interrupt when counters are reset, which was
not part of the contract.
Makefile.common: split target-specific flags

Separate CPPFLAGS, CFLAGS, and LDFLAGS so that the relevant material is passed
only to the tools that require it.
Makefile.common: avoid building deps just to delete them
timer: generalize support for counter read approaches

The optimal method depends on the timer configuration and clock rates.  This
commit refactors and generalizes the previous approaches so that each
technique can be used independently.  An example is added to contrast the
performance of each method.

This also clarifies that "safe" means "will return with a value" and is
distinct from "valid" meaning "returned value is not garbage".

CPUX results with configBSP430_TIMER_VALID_COUNTER_READ=1:

3 hrt overhead subtracted from each result
3 hrt to sync read value 22369
9 hrt to async read value 23457
4 hrt to configure latched counter
8 hrt to read latched counter 25803
45 hrt to configure safe counter
21 hrt to read safe counter 28217
76 hrt to read uptime 226015

CPUX results with configBSP430_TIMER_VALID_COUNTER_READ=0:

3 hrt overhead subtracted from each result
3 hrt to sync read value 47095
9 hrt to async read value 48183
0 hrt to configure safe counter
3 hrt to read safe counter 50427
55 hrt to read uptime 51583
tlv: correct description of module presence flag
close #42: add EUI support

Limited to EUI-64, current implementation generates a probabilistically
unique non-random value from device calibration data.
surf: add DS1825 as platform-specific capability
eui64: support platform-specific EUI-64 implementations

Demonstrate this with one for the SuRF platform that derives a permanent
EUI-64 from the board DS1825 temperature sensor's serial number.
Reindent
uptime: correct application of dividing shift
close #44: work around CPU42

This bug was demonstrated in the following code.  mspgcc is not going be
fixed anytime soon, and other toolchains may have the same problem.

BSP430_CORE_ENABLE_INTERRUPT();
while (1) {
  unsigned int t0, t1;
  BSP430_CORE_DISABLE_INTERRUPT();
  t0 = TA0R;
  t1 = TA0R;
  BSP430_CORE_ENABLE_INTERRUPT();
  printf("Time difference %u\n", t1-t0);
}
timer: add hints about timer configuration to HAL

Recording whether a timer source is synchronous with MCLK and whether it's
slow can allow infrastructure code to obtain the underlying counter without
risking deadlock or a sub-optimal result.
timer: add facility to force alarm set even if it may have been missed

This is useful when configuring an RTOS task infrastructure after the clock
has already been started.
Fix base int for value cast to pointer
cpu42: Add reproducing code

This program demonstrates whether CPU42 affects a base __enable_interrupt()
intrinsic.
timer_lpm: A framework for analyzing wakeup delays from various LPM states

5xx/6xx MCUs can take 150us to wake from LPM2 and LPM3.

FR5xx MCUs can take 75us to wake from LPM3.

This sort of delay is not seen in lower-end MCUs.
close #46: fix CS_A distinction for new TI headers

Use DCOFSEL2 to detect that CS is a FR58xx/FR59xx variant.
Reindent