UPD: Documentation update, including warning about backwards compatibility

[skip ci]
REF: Moved neutronpy docs to docs subfolder for better organization

[skip ci]
ADD: Added changelog, with support for html rendering with releases package

[skip ci]
UPD: Used warning box in README

[skip ci]
ADD: Logo for documentation

[skip ci]
ADD: Contact page

[skip ci]
UPD: Theme for documentation to custom RTD and Alabaster

[skip ci]
REF: Moved tools to core

core is imported as * so available at the root level of the package, but compatibility is currently maintained.
FIX: core package was accidentally committed into eeeb4e2e
UPD: Changed to napoleon extension from numpydocs

[skip ci]
REF: changed variables to properties, and built a better __init__

h, k, l, e, temp, intensity, and error are now properties with a setter decorator for all except intensity and error.

m0, t0 are defined at init, but re-checked at call of intensity & error for sanity (if m0/t0 == 0 then reset)

Tests should still work as is.
REF: Added exception handling to properties

also minor pylint cleanup
REF: Changed variable names in Energy, added exception handling
UPD: Docstring update for Energy

Minor change to Data docstring also
REF: Cleanup of the combine_data method

There is no purpose to setattr() for h,k,l, etc. now
REF: Rewrite of bg_estimate method

now takes a dictionary with type and value

Data docstring update
FIX: tolerances fixed after combine_data refactor
FIX: cleanup whitespace

[skip ci]
UPD: Documentation for Data class updated

[skip ci]
REF: Renamed directories for better consistency

[skip ci]