Split User into TotalConsumption and WithCurve

TotalConsumption works identically to the old user, while WithCurve
allows you to give the user a load curve (with pre-calculated per-hour
demands for the user). WithCurve satisfies the needs of an an export (or
"demand") interconnector as per #105.