Added CSP files into their own package, not complete, will give more detailed explaination of what needs doing somewhere...
Did some more work on the CSP, only just started filling in the checkValidAssignment() function.

I think there could still be some bits that need adding to the other classes, but they will be done when needed, the only major thing is making a constructor for the Problem class that basically copies a Problem that already exists, otherwise we just get references to the initialState constantly which isn't what we need. The only reason initialState is getting passed around is for the updating print function while the program is running.

Also, biggest commit message ever.
Fixed one of the problems that I was having with the shift pattern recognition.
Additional changes to the functionailty of the system:

Added a count for the number of shifts the nurse can do
Nurse checks should now be complete, added some TODO with bits that need to be changed and checked etc, but now just the day checks need to be added such as minimum staffing requirements etc.
All the nurse checks are complete and seem to be working fine.

Started adding in the day checks, currently only have the "SRN nurse on each shift on each day" check done, but that seems to be working.

Also changed around the way the first empty shift is found to work by day rather than by nurse as this seemed to make it much faster for backtracking and changing things.

Added in a little code to track the total time taken to run so that we can keep an eye on it as well.
Added CSP files into their own package, not complete, will give more detailed explaination of what needs doing somewhere...
Started adding in the minimum staffing rules, though they aren't working correctly yet.
It's working, but very slow, going to try remove some code to optimise it a little bit
Backing up for when I break something
All complete now, but still running slow.
Merge CSP to Master