Failing test "is_power_of_two"

On Windows machine log2(8L) yields 2.999 because of float representation
inaccuracy.

D:\playground\fht_adoption>nosetests
.............EE.........F
======================================================================
ERROR: test_fht.test_random_inverse((128, 128),)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\applications\anaconda\lib\site-packages\nose\case.py", line 197, in runTest
    self.test(*self.arg)
  File "D:\playground\fht_adoption\tests\test_fht.py", line 64, in check_random_inverse
    assert_array_almost_equal(fht.fht(fht.fht(a)), a)
  File "D:\playground\fht_adoption\fht\fht.py", line 25, in fht
    return fht2(arr, **kargs)
  File "D:\playground\fht_adoption\fht\fht.py", line 98, in fht2
    return fht1(arr.flatten()).reshape(arr.shape)
  File "D:\playground\fht_adoption\fht\fht.py", line 49, in fht1
    raise ValueError('array shape must be a power of two')
ValueError: array shape must be a power of two

======================================================================
ERROR: test_fht.test_random_inverse((2, 2, 2),)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\applications\anaconda\lib\site-packages\nose\case.py", line 197, in runTest
    self.test(*self.arg)
  File "D:\playground\fht_adoption\tests\test_fht.py", line 64, in check_random_inverse
    assert_array_almost_equal(fht.fht(fht.fht(a)), a)
  File "D:\playground\fht_adoption\fht\fht.py", line 27, in fht
    return fht3(arr, **kargs)
  File "D:\playground\fht_adoption\fht\fht.py", line 154, in fht3
    return fht1(arr.flatten()).reshape(arr.shape)
  File "D:\playground\fht_adoption\fht\fht.py", line 49, in fht1
    raise ValueError('array shape must be a power of two')
ValueError: array shape must be a power of two

======================================================================
FAIL: test_fht.test_is_power_of_two
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\applications\anaconda\lib\site-packages\nose\case.py", line 197, in runTest
    self.test(*self.arg)
  File "D:\playground\fht_adoption\tests\test_fht.py", line 79, in test_is_power_of_two
    assert_equal(fht.is_power_of_two(8L), True)
  File "D:\applications\anaconda\lib\site-packages\numpy\testing\utils.py", line 317, in assert_equal
    raise AssertionError(msg)
AssertionError:
Items are not equal:
 ACTUAL: False
 DESIRED: True

----------------------------------------------------------------------
Ran 25 tests in 0.096s

FAILED (errors=2, failures=1)
Fix failing test for "is_power_of_two"
Merge pull request #3 from felixmaximilian/master

Alternative implementation for is_power_of_two that is working on windows float precision