ipythonblocks: Replace map() calls with for loops

In Python 3, map() returns an iterable instead of a list.  Unless you
iterate through the list, the mapping function is never called.  The
Python 3.0 notes suggests [1]:

  If you really need a list, a quick fix is e.g. list(map(...)), but a
  better fix is often to use a list comprehension (especially when the
  original code uses lambda), or rewriting the code so it doesn’t need
  a list at all. Particularly tricky is map() invoked for the side
  effects of the function; the correct transformation is to use a
  regular for loop (since creating a list would just be wasteful).

Since we're only interested in side effects, convert the map() calls
to for loops.

[1]: http://docs.python.org/3.0/whatsnew/3.0.html#views-and-iterators-instead-of-lists
Merge pull request #10 from wking/python3-map

Replace certain map() calls with for-loops for Python 3 compatibility.
Added a display time option to BlockGrid.flash().
Changed the animate property to a method.

This allows it to take a stop_time keyword that controls the amount
of time in between loop steps.
Updated _view_from_grid so slice views have correct block size and border display.
Optionally use setuptools for installation if available
Merge pull request #17 from iguananaut/optional_setuptools

Optionally use setuptools for installation if available
Making setup.py executable. Fixes #16.