Rough implementation of Javascript IPython rendering
build CSharp bindings in SOURCE_DIR
Update UFF to use traditional Rappe angle potential.

Uses an exponential penalty if theta < theta0, similar to that
used in ESFF. Seems to prevent optimization of acute angles to 0.0
pybel.py made PEP8 compliant
add .travis.yml file
Speed up 3D coordinate generation with shorter conformer clean-ups.
Improved distance geometry generation.

Now enforces double bond stereochemistry through 1-4 constraints.
Performs in-ring cleanup for dihedral angles.
A few additional improvements.

TODO: atom-based stereo enforcement, 1-5 constraints
2D/3D toggle now accessible by `pybel.ipython_3d` boolean
Fix skipping molecules while using OBConversion::Read() method (mainly for bindings).
Use FastRotorSearch for a quick-and-dirty general conformer.

Should be significantly faster than the WeightedRotorSearch.
Full evaluation will be performed in the next few months by
an interested undergrad student.
Add FastRotorSearch to available methods. Fix FF-based methods.

FF-based methods wouldn't actually perform any work. Now actually
do the conformer searching with these methods (and a quick clean-up).
Add some automatically-built scripts/ code to prevent commiting to git
Use MMFF94 as default forcefield.
Add an argument to --gen3d 1..5 for speed.

Speed 5 = build only
Speed 4 = build + FF cleanup
Speed 3 = build + cleanup + fast conformer search
etc.
Allow "fast" or "best" for --gen3d options.
Add OBMol::AreInSameRing(a, b) method for detecting mutual ring membership.

Use this method in OBBuilder for spiro ring detection rather than
OBMol::Separate() since it's more efficient and less error prone.
(Current method causes crash in some spiro compounds. Fix pending.)
Fix compile problem due to use of FastRotorSearch without Eigen
Move OBForceField::FastRotorSearch from confsearch.cpp to forcefield.cpp as it does not depend on Eigen (unlike the other contents of confsearch.cpp). This should fix the compile problem (see the CDashboard).
Initial commit for EQeq crystal charge equilibration method

Run through python with

```
eqeq = pybel.ob.OBChargeModel_FindType("eqeq")
eqeq.ComputeCharges(mol.OBMol)
```
Reduced footprint of 3D ipython rendering
Changed url of 3d molecule viewer