Removing ncc, nesdoc, mig, ncg

ncc is a very strange step in the build process. It is basically a
magical perl script that sets a bunch of include directories, but is
really just another opaque layer to figuring out how tinyos is getting
built. While trying to re-write it to make it a bit cleaner and smarter,
I had a realization: Why are include directories and nesc flags (which
are used to compile code) smack dab in the middle of a src folder
(tos/platforms/<platform>/platform)? Why isn't all of that contained in
the make system (where you would expect it to be? In fact, why do we
need these magic files (platform, family, sensor) at all?

This commit addresses these questions by starting to move what was in
the platform (etc.) files into the make system. In this way, X.target
files include Y.platform files, Z.sensor files, (etc.) in order to get
all of the relevant flags without needing to write perl code.

Also, tos-sub-tosdir tool makes the %T flag magical. Instead of just
being replaced with $TOSDIR, it is replaced with all of the $TOSDIR
paths that point to actual folders. This allows for first class support
for out of tree platforms, as they will be able to use the %T syntax and
have it just work. This is convienent because if the platform ever gets
moved to tinyos-main it will just work.

Removed nesdoc; Use nesdoc-archive instead

nesdoc was another ncc style script, now you just call the python
scripts directly.

Removed mig and ncg

mig and ncg are more examples of magic scripts, mostly because they use
ncc. To remove them, I replaced all instances of mig with nescc-mig and
ncg with nescc-ncg. Then I added the correct argument to make sure they
still execute correctly.

This isn't as bad as it sounds due to $(NESC_PFLAGS) being very useful.
That variable basically replaces what ncc used to do.
Removed default-platform

default-platform wasn't really being used, so now an explicit target
must be provided to all tinyos-tools. Therefore -print-target is no
longer a reasonable option.
Streamlining Make system

Changing variable names to be more consistent and insightful.
Refactoring make microcontrollers

Reformating all of the platforms to use the common Makerule targets
among other things.

.rules files are now much more concise and duplicate much less.
Moved platform,family,sensor files to support/make

Updated the targets to pull in the correct platform
Reworking the TinyOS Make system

Moved -gcc to .rules; cleaned up variable names

Moved .c files to TOSMAKE_ADDITIONAL_INPUTS

Adding source files to PFLAGS causes mig and ncg to not work, so all
additional source files needed for compilation must be added to the
TOSMAKE_ADDITIONAL_INPUTS variable, and not PFLAGS.

make system: added check for cygwin

Sets TOSMAKE_CYGWIN to 1 if the app is being built with cygwin.

make system: Made variable names consistent

Variables meant to be set with env variables (if the defaults are not
ok):
TINYOS_MAKEDEFAULTS
TINYOS_MAKELOCAL
TINYOS_MAKERULES
TINYOS_MAKE_DIR
TINYOS_OS_DIR
TINYOS_ROOT_DIR
TINYOS_ROOT_DIR_ADDITIONAL

Variables that are common with many makefiles probaly should only be set
in other makefiles:
TOSMAKE_ADDITIONAL_INPUTS
TOSMAKE_AMADDR_STR
TOSMAKE_AM_GROUP
TOSMAKE_BINARY_FORMAT
TOSMAKE_BINARY_IN
TOSMAKE_BINARY_OUT
TOSMAKE_BUILD_DIR
TOSMAKE_CLEAN_EXTRA
TOSMAKE_CYGWIN
TOSMAKE_DOC_DIR
TOSMAKE_DO_REINSTALL
TOSMAKE_FLASH_CHIP
TOSMAKE_MAKE_PLATFORM_DIR
TOSMAKE_OS_DIR_ALL
TOSMAKE_PATH
TOSMAKE_PFLAGS_STD_INCLUDE
TOSMAKE_POST_EXE_DEPS
TOSMAKE_PRE_EXE_DEPS
TOSMAKE_PROGRAMMER_TYPE
TOSMAKE_TOS_NODE_ID_STR
TOSMAKE_VOLUME_ALLOCATOR_FLAGS
Moved targets and extras to their own folders
Updated sim, appdoc, doc, tosthreads, tosboot

Combined sim so that -fast and -sf just configure sim.extra, and are
not full duplicates.

Appdoc now modifies doc.extra by adding the --app flag.