Isolate unittests

Python unit tests written for about 50 tests and restructured to clearly separate unit tests and funcitonal tests, which now stay in separate directories. Build dependency on unittests only, which lessens build times significantly since they do not hit network.