Overhauled handling of compiler flags

Previously all compiler flags (cxxflags etc) were hardcoded into `ino',
which is inflexible since, for instance, it is not even possible to
define constants (via `-D') on the command-line at compile time.  This
commit adds the `--cppflags', `--cflags', `--cxxflags' and `--ldflags'
command-line options in order to improve this situation.

In summary, all are documented under `ino build --help'; defaults are
preserved as before; and the user is not able to void any flags (e.g.
include paths for the required libraries) which are essential for the
building of a sketch
Fixed hanging when no .cpp files bug

Fixed bug that caused `ino' to hang when scanning for dependencies of
libraries with only .h files (i.e. no .ino, .c or .cpp files).
Allowed specification of build tools

Previously the verisons of avr-gcc etc. that were used for compilation
and linking were all set by default. This commit adds the option to
choose which tools to use via various flags specified in `ino build
--help'.
Moved all build flag arg parsing into build.py

It is unnecessary to clutter environment.py since we don't require these
flags globally.
Minor housekeeping

Made makefile select 'python2' via env for portability. Added vim
.sw[op] files to .gitignore. Added a TODO list.
Prevent .build creation for accidental builds
Make src the only requirement for building.
Merge branch 'folder-fix' of https://github.com/gnusouth/ino into folder-fix