Added extend and extendAndShift methods to BitUtils.
rewrite concatenateInputsAndOutputs
Update test for concatenateInputsAndOutputs
Added partialCompose() method to BasePolynomialFunction
Refactor extendAndShift static methods into Monomial class for accessibility.
Fix bugs in extendAndShift.
Tested edge case of partialCompose
Added Precondition to partialCompose
Reformat using style guide
comment out Precondition that parameterized function breaks.
Fell behind develop.

Merge branch 'develop' into feature/partial-compose

* develop:
  changed visibility of encrypt and decrypt to package and moved unit tests to same package
Added sorting utility to reorder a BitVector.
Added length param to sortByMapping utility method
Refactored code to style guides.
Added interleaveFunctions utility.
Tested interleaveFunctions utility on a concatenateInputsAndOutputs implementation.
Refactor sortByOrder into extendAndOrder to better match project semantics.
Refactor concatenateInputsAndOutputs to use interleaveFunctions in implementation.
Refactor to style guide
Changed interface to partial compose
Implemented partialComposeLeft() and partialComposeRight()
Tested partial compose implementations.
Fixed mapping array sizes.
reduced complexity of testInterleaveFunctions so tests don't take forever.
Merge pull request #43 from kryptnostic/feature/partial-compose

Feature/partial compose